Java Regex Unclosed字符类(PatternSyntaxException)

时间:2013-06-20 14:54:50

标签: java regex

我在编译正则表达式时遇到问题。我无法找到这个表达式的问题,因为我从思科文档中得到了它,我不明白为什么它不起作用。我希望有人能告诉我它有什么问题。这就是我想要做的事情:

public void test(){
    try{
        pattern.compile("^[]0-9*#X[^-]{1,50}$");
        System.out.println("Syntax is ok");
    } catch (PatternSyntaxException e) {
        System.out.println(e.getDescription());
    }
}

1 个答案:

答案 0 :(得分:1)

此:

^[]0-9*#X[^-]{1,50}$

不起作用,您必须将[]0-9替换为[0-9]

^[0-9]*#X[^-]{1,50}$

<强>更新

正如Duncan Jones所说,也许你想在字符串的开头匹配[]。在这种情况下,你的正则表达式必须成为

^\[\]0-9*#X[^-]{1,50}$

所以:

pattern.compile("^\\[\\]0-9*#X[^-]{1,50}$");