const regex = /(?:(?:(\d*(?:\d*(?:.?,?)*?)*?)(.?|,?)(\d*)) ?(k|m|g|c|d|p)?(mi|bbl.|cu.|doz.|fl.? ?oz|F|ft|gal|gr|in|k|lb|mph|n.m|oz|pt|qt|sq|rpm|tablespoon|teaspoon|tbsp|tsp|td|l |m|m|b|g|kl|l |C |g|m|mt|w)(?:\/?(h|s|m)?).? *?(?:\^ *?(\d+))?)(?= |\n|\r)/gi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:(?:(\\d*(?:\\d*(?:.?,?)*?)*?)(.?|,?)(\\d*)) ?(k|m|g|c|d|p)?(mi|bbl.|cu.|doz.|fl.? ?oz|F|ft|gal|gr|in|k|lb|mph|n.m|oz|pt|qt|sq|rpm|tablespoon|teaspoon|tbsp|tsp|td|l |m|m|b|g|kl|l |C |g|m|mt|w)(?:\\\/?(h|s|m)?).? *?(?:\\^ *?(\\d+))?)(?= |\\n|\\r)', 'gi')
const str = `.05 ml
50 km
30 cm^23
12 cm
12.000.000,3 ml
12,000 ml
12,000,123.3 ml
12 km/h
12,000,123,312 ML
0.5
// This is a comment line. It is for human use only and is ignored by the Objective-C compiler.
NSString *myString;
int i = 0;
NSString *myString = @"This is a //valid// string"; //... followed by a single line comment
#ifndef// begin definition of pi
#define SOME_CONSTANT 3.14 // pi
#endif // end definition of pi
NSString *my_string = @"Line1 \\
Line2"; // Multine string
NSString *g = myString; // Comment ...
NSString *myString = @"dsff; //fsdf";
NSString *myString = @"dsff\\"; //fsdf";
self.viewController.title = @"sdfsdfs" //sdfsdfsdf \\n "sdfsdf";`;
// 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