尽管具有最大长度,但由于没有最大长度用于lookbehind而抛出模式语法异常

时间:2013-07-02 16:02:50

标签: java regex

我知道Java中的lookbehinds不能使用*和+重复。我已经使用大括号来定义重复模式的最大长度,但它仍然会抛出以下异常:

    Exception in thread "main" java.util.regex.PatternSyntaxException: 
Look-behind group does not have an obvious maximum length near index 33
    (?<!([A-Z]{0,100}\W{0,100}){0,100})[A-Z]{2,}(?!([A-Z]+\W+)+)

1 个答案:

答案 0 :(得分:0)

您仍在使用lookbehind中的可变长度匹配,因此它无效。正如您所写,[A-Z]{0,100}将匹配0到100个字符,这与使用[A-Z]*实际上相同,并且匹配字符的上限。