用于匹配字符串的模式

时间:2014-03-13 14:32:14

标签: java regex pattern-matching

我尝试创建一个匹配类似于以下字符串的java.util.regex.Pattern

Unexpected ID 'foo_<some_number>': ERR-125:"IDs": invalid id

所以我认为模式应该是这样的:

Pattern.compile("Unexpected ID 'foo_*': ERR-125:\"IDs\": invalid id");

但那并没有奏效。 谁能告诉我它为什么不起作用?我该怎么做呢?

由于

2 个答案:

答案 0 :(得分:4)

Pattern中的问题是您在下划线上使用 0或更多(贪婪)量词

试试这个:

String input = "Unexpected ID 'foo_1': ERR-125:\"IDs\": invalid id";
//                                                   | any digit
//                                                   |  | once or more (greedy)
System.out.println(input.matches("Unexpected ID 'foo_\\d+': ERR-125:\"IDs\": invalid id"));

<强>输出

true

答案 1 :(得分:0)

Asterisk使用错误,请尝试使用\ d。

抱歉,您已经完成了......好吧。