匹配$ {123 ... 456}并在Java中提取2个数字?

Man*_*nie 2 java regex

当我知道格式将始终是“ ${INT1...INT2}例如,Hello ${123...456}会提取123,456

Men*_*ena 5

我将Pattern与组和反向引用一起使用。

这是一个例子:

String input = "Hello ${123...456}, bye ${789...101112}";
//                           | escaped "$"
//                           |  | escaped "{"
//                           |  |  | first group (any number of digits)
//                           |  |  |    | 3 escaped dots
//                           |  |  |    |       | second group (same as 1st)
//                           |  |  |    |       |    | escaped "}"
Pattern p = Pattern.compile("\\$\\{(\\d+)\\.{3}(\\d+)\\}");
Matcher m = p.matcher(input);
// iterating over matcher's find for multiple matches
while (m.find()) {
    System.out.println("Found...");
    System.out.println("\t" + m.group(1));
    System.out.println("\t" + m.group(2));
}
Run Code Online (Sandbox Code Playgroud)

输出量

Found...
    123
    456
Found...
    789
    101112
Run Code Online (Sandbox Code Playgroud)