今天在写正则的时候发现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}")[^>]*>