use strict;
my $str = 'Beam Number : 2
Beam Name : CCW
Original MU : 1995.39040729
Logging Scale : IEC 1217
X1 (Cms): -2.50
X2 (Cms): +2.20
Y1 (Cms): -2.60
Y2 (Cms): +2.50
Gantry Rotation Angle (deg): 87.73
Energy : 6x
MU1 : 1007.63
MU2 : 1009.05
Radiation Time (mins): 1.6807
DoseRate (MU/min): 598.32
PFN High Voltage Power Supply Current (A): 1.908875
PFN Actual Voltage (KV): 18.21791
RF Driver Voltage (V): 4.365
RF Forward Power (W): 1.516418
AFC Error (V): -0.000601778
Gun Current (A): 0.3430939
Gun High Voltage (V): -14965
Gun Grid Voltage (V): 97.55565
Gun Filament Step Voltage (V): 5.300003
Gun Filament Voltage (V): 5.405273
Bend Magnet Current (A): 16.18042
Bend Magnet Voltage (V): 2.283325
Accelerator Solenoid Current (A): 34.95636
Klystron Solenoid Current (A): 34.95789
Radial Symmetry (%): 0.00045321
Transverse Symmetry (%): 0.00044355
Target Current (nC): 315.4927
Buncher Radial Current (A): 0.005020142
Buncher Transverse Current (A): -0.06005859
Angle Radial Current (A): 0.005279541
Angle Transverse Current (A): 0.06143188
Position Radial Current (A): -0.8885803
Position Transverse Current (A): -0.5808258
Trim : (A) -0.06399536
Accelerator Vacion Current (uA): 0.009002686
Positive 5V dc: 4.993916
Positive 24V dc: 24.4706
Analog Negative 5V dc: 5.054981
Analog Positive 5V dc: 4.97241
Negative 12V dc: 12.24357
Positive 3V dc: 3.303525
Node Power Supply Voltage (V): 24.58121
Water Level : Normal
City Water Temperature (deg C): 20.54332
Internal Water Supply Temperature (deg C): 40.51909
Gas Pressure (PSI): 32.3421';
my $regex = qr/(.*(?!\s))(?:(?<!\s\s)\:\s+)((?:[\-\+])?\d+\.\d+|\w+$|[\-\+]\d+|\w+\s\d+)/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html