const regex = /^(?<name>.*)time:\s*\[(?<low>\d+\.?\d*)\s(?:\w{1,2})\s(?<value>\d+\.?\d*)\s(?<unit>\w{1,2})\s(?<high>\d+\.?\d*).*$/mg;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(?<name>.*)time:\\s*\\[(?<low>\\d+\\.?\\d*)\\s(?:\\w{1,2})\\s(?<value>\\d+\\.?\\d*)\\s(?<unit>\\w{1,2})\\s(?<high>\\d+\\.?\\d*).*$', 'mg')
const str = `Symbol Creation time: [567.19 us 572.98 us 580.80 us]
Found 17 outliers among 100 measurements (17.00%)
4 (4.00%) high mild
13 (13.00%) high severe
Running target/release/deps/fib-9ff430dbccaab995
Benchmarking fibonacci (Execution): Warming up for 3.0000 s
fibonacci (Execution) time: [5.4756 ms 5.5354 ms 5.6049 ms]
Found 13 outliers among 100 measurements (13.00%)
3 (3.00%) high mild
10 (10.00%) high severe
Running target/release/deps/string-21e60149b4b73866
Hello World (Execution) time: [518.17 us 519.92 us 521.89 us]
Found 12 outliers among 100 measurements (12.00%)
7 (7.00%) high mild
5 (5.00%) high severe
Hello World (Lexer) time: [1.8861 us 1.9440 us 2.0071 us]
change: [+13.420% +15.685% +17.802%] (p = 0.00 < 0.05)
Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
`;
// 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