import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?<name>.*)time:\\s*\\[(?<low>\\d+\\.?\\d*)\\s(?:\\w{1,2})\\s(?<value>\\d+\\.?\\d*)\\s(?<unit>\\w{1,2})\\s(?<high>\\d+\\.?\\d*).*$";
final String string = "Symbol Creation time: [567.19 us 572.98 us 580.80 us]\n"
+ "Found 17 outliers among 100 measurements (17.00%)\n"
+ " 4 (4.00%) high mild\n"
+ " 13 (13.00%) high severe\n\n"
+ " Running target/release/deps/fib-9ff430dbccaab995\n"
+ "Benchmarking fibonacci (Execution): Warming up for 3.0000 s\n"
+ "fibonacci (Execution) time: [5.4756 ms 5.5354 ms 5.6049 ms]\n"
+ "Found 13 outliers among 100 measurements (13.00%)\n"
+ " 3 (3.00%) high mild\n"
+ " 10 (10.00%) high severe\n\n"
+ " Running target/release/deps/string-21e60149b4b73866\n"
+ "Hello World (Execution) time: [518.17 us 519.92 us 521.89 us]\n"
+ "Found 12 outliers among 100 measurements (12.00%)\n"
+ " 7 (7.00%) high mild\n"
+ " 5 (5.00%) high severe\n"
+ " \n"
+ "Hello World (Lexer) time: [1.8861 us 1.9440 us 2.0071 us]\n"
+ " change: [+13.420% +15.685% +17.802%] (p = 0.00 < 0.05)\n"
+ " Performance has regressed.\n"
+ "Found 2 outliers among 100 measurements (2.00%)\n"
+ " 1 (1.00%) high mild\n"
+ " 1 (1.00%) high severe\n\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html