shazin
shazin

Reputation: 21913

Java Regular Expression Issue

The following exception is thrown when this [0-9]+_[0-9]+_[0-9]+(_[0-9]+){0,1} regex is used.

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)

I am reading this from a XML File.

Upvotes: 1

Views: 1548

Answers (2)

mkczyk
mkczyk

Reputation: 2710

You have to escape commas with backslash:

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

Upvotes: 0

epoch
epoch

Reputation: 16615

You probably want this:

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

Upvotes: 3

Related Questions