2013-02-12 89 views
0

使用此[0-9]+_[0-9]+_[0-9]+(_[0-9]+){0,1}正則表達式時會引發以下異常。Java正則表達式問題

Caused by: java.util.regex.PatternSyntaxException: Unclosed counted closure near index 31 
[0-9]+_[0-9]+_[0-9]+(_[0-9]+){0 
          ^
    at java.util.regex.Pattern.error(Pattern.java:1713) 
    at java.util.regex.Pattern.closure(Pattern.java:2759) 
    at java.util.regex.Pattern.group0(Pattern.java:2537) 
    at java.util.regex.Pattern.sequence(Pattern.java:1806) 
    at java.util.regex.Pattern.expr(Pattern.java:1752) 
    at java.util.regex.Pattern.compile(Pattern.java:1460) 
    at java.util.regex.Pattern.<init>(Pattern.java:1133) 
    at java.util.regex.Pattern.compile(Pattern.java:823) 

我正在閱讀XML文件。

+2

顯示的代碼使用 – pstr 2013-02-12 13:20:02

+0

我用Java標準Pattern.compile和Pattern.matcher在代碼。 – shazin 2013-02-12 13:34:04

回答

3

你可能想這樣的:

[0-9]+_[0-9]+_[0-9]+(_[0-9]+)? 
+0

但是相同的模式在這個http://www.regexplanet.com/advanced/java/index.html – shazin 2013-02-12 13:17:56

+1

工程可以給你一些你需要匹配的例子嗎?你提供的正則表達式編譯得很好,你可能在你的字符串中有一個額外的字符。發佈代碼:) – epoch 2013-02-12 13:19:29

0

你必須轉義反斜槓逗號:

[0-9]+_[0-9]+_[0-9]+(_[0-9]+){0\,1}