Java正则表达式问题

Java正则表达式问题,java,xml,regex,Java,Xml,Regex,当使用此[0-9]+[0-9]+[0-9]+([0-9]+){0,1}regex时,会引发以下异常 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.

当使用此
[0-9]+[0-9]+[0-9]+([0-9]+){0,1}
regex时,会引发以下异常

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)
原因:java.util.regex.PatternSyntaxException:索引31附近的未关闭计数闭包
[0-9]+_[0-9]+_[0-9]+(_[0-9]+){0
^
位于java.util.regex.Pattern.error(Pattern.java:1713)
位于java.util.regex.Pattern.closure(Pattern.java:2759)
位于java.util.regex.Pattern.group0(Pattern.java:2537)
位于java.util.regex.Pattern.sequence(Pattern.java:1806)
位于java.util.regex.Pattern.expr(Pattern.java:1752)
位于java.util.regex.Pattern.compile(Pattern.java:1460)
Pattern.(Pattern.java:1133)
位于java.util.regex.Pattern.compile(Pattern.java:823)

我正在从一个XML文件中读取此内容。

您可能需要以下内容:

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

你可能想要这个:

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

必须用反斜杠转义逗号:

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

必须用反斜杠转义逗号:

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

但是相同的模式在这方面起作用,你能给出一些你需要匹配的例子吗?你提供的正则表达式编译得很好,你的字符串中可能有一个额外的字符。张贴代码:)但是相同的模式在这方面起作用,你能给出一些你需要匹配的例子吗?你提供的正则表达式编译得很好,你可能有一个额外的字符字符串中的某个字符。发布代码:)显示您使用的代码片段在代码中使用Java Standard Pattern.compile和Pattern.matcher。显示您使用的代码片段在代码中使用Java Standard Pattern.compile和Pattern.matcher。您不必在Java正则表达式中用反斜杠转义逗号。类似的表达式可以工作:
“^(\\d+\\){0,2}\\d+$”
。另请参见Javadoc中关于的讨论。在Java正则表达式中,不必用反斜杠转义逗号。类似的表达式可以工作:
“^(\\d+\\){0,2}\\d+$”
。另请参见Javadoc中关于的讨论。