Pattern p = Pattern.compile("(?<=<(\\w+)>)");
Matcher m = p.matcher(textStr);
怎么提示我(?<=<(\\w+)>[color=#FF0000][/color])
红色的部分出错
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 10
(?<=<(\w+)>)
解决方法:
lookbehind 其中所指定的字符必须是指定数量的,不能用 * + 之类的,但可以用 {0, 100} 这种确定型的。
lookahead 没有这种限制。
特殊构造(非捕获)
(?:X) X,作为非捕获组
(?idmsux-idmsux) Nothing,但是将匹配标志由 on 转为 off
(?idmsux-idmsux:X) X,作为带有给定标志 on - off 的非捕获组
(?=X) X,通过零宽度的正 lookahead
(?!X) X,通过零宽度的负 lookahead
(?<=X) X,通过零宽度的正 lookbehind
(?<!X) X,通过零宽度的负 lookbehind
(?>X) X,作为独立的非捕获组
转载于:https://blog.51cto.com/shpshao/647511