1)零断言
//前瞻
(?=exp)真正有用的部分,在这个位置之前,之前的数据需要匹配exp
(?<=exp)真正有用的部分,在这个位置之后,之后的数据需要匹配exp
//后顾
(?!exp)真正有用的部分,在这个位置之前,之前的数据不匹配exp
(?<!exp)真正有用的部分,在这个位置之后,之后的数据不匹配exp
示例:
Pattern validateExPressPattern=Pattern.compile("\\[url\\]((?=.*\\[url\\]).*)\\[/url\\]", Pattern.CASE_INSENSITIVE);
Matcher m = validateExPressPattern.matcher("[url][b]123[/b][/url]");
System.out.println("----------"+m.matches());
System.out.println(m.group(1));