Java正则零宽断言出现PatternSyntaxException异常

今天在写正则的时候发现Java正则使用零宽断言(?<!exp) 匹配前面不是exp的位置,报出了一个异常:

Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 26

(?<=<img[^>]*src="[^"]*")[^>]*>

                          ^

具体大概是讲没有一个明显的最大长度,后来查了下资料才发现,Java正则 <=断言的限制, 需要有最大值,所以只要改一下正则表达式*通配符有个最大值就可以了。

原:(?<=<img[^>]*src="[^"]*")[^>]*>

改:(?<=<img[^>]{0,500}src="[^"]{0,500}")[^>]*>


你可能感兴趣的:(java,异常,正则,零宽断言)