2014-03-13 284 views
0

我試圖創建一個java.util.regex.Pattern將匹配類似於下面的字符串:模式匹配字符串

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

所以我想這個模式應該僅僅是這樣的:

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

但那並不奏效。 有誰能告訴我爲什麼它不起作用?我應該做些什麼呢?

感謝

回答

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 
0

Asterisk的使用是錯誤的,請嘗試使用\ d。

對不起,您已經完成了...好。