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中关于的讨论。