const regex = /(.*(?!\s))(?:(?<!\s\s)\:\s+)((?:[\-\+])?\d+\.\d+|\w+$|[\-\+]\d+|\w+\s\d+)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(.*(?!\\s))(?:(?<!\\s\\s)\\:\\s+)((?:[\\-\\+])?\\d+\\.\\d+|\\w+$|[\\-\\+]\\d+|\\w+\\s\\d+)', 'gm')
const 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`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions