长沙网站优化外包服务,厦门移动网站建设哪家专业,server 2008 架设网站,自助建站的平台第一段为合法html代码#xff0c;第二段为不合法html代码。?xml:namespace prefix o ns urn:schemas-microsoft-com:office:office /[^]匹配非的任意多个字符\\w[^]/\\w;开头用来匹配开始tag结尾用来匹配结束tag中间用来匹配文本。… 第一段为合法html代码第二段为不合法html代码。?xml:namespace prefix o ns urn:schemas-microsoft-com:office:office / [^]匹配非的任意多个字符 \\w[^]/\\w; 开头用来匹配开始tag 结尾用来匹配结束tag 中间用来匹配文本。 发现这个正则表达式既能匹配合法又能匹配不合法的。 因为匹配开始tag和结束tag的两个子表达式并没有什么联系也就是说匹配的结束tag并不等于开始的tag 下面用反向引用在两个子表示之间建立联系 String regex (\\w)[^]/(\\1); 运行结果 h1good,good/h1能够匹配正则:(\w)[^]/(\1) h1bad/h2不能够匹配正则:(\w)[^]/(\1) 对匹配开始tag的子表达式添加捕获分组 (\\w) 在匹配结束tag的子表达式中使用\1这个反向引用的功能 /(\\1)引用之前的子表达式(\\w) 补充 一些题外话使用正则表达式替换的时候也可以使用反向引用的功能。 例子 public class GeneralEvelent { public static void main(String[] args) { String dupWords word word; String dupWordRegex (\\w)\\s(\\1); System.out.println(替换之前:dupWords); System.out.println(替换之后: dupWords.replaceAll(dupWordRegex, $1)); } } 运行结果 替换之前:word word 替换之后:word 简单的去掉重复单词的例子 dupWords.replaceAll(dupWordRegex, $1) $1按照java语言规定这个特殊变量对应的是正则表达式中编号为1的分组所捕获的字符串。 也就是说将两个重复单词的字符串替换为单个重复单词的字符串这样就去掉了一个重复单词。 小结 ·量词规定之前元素出现的次数 ·* ·区间量词{min,max} ·量词的局限括号(...)的使用 ·括号的用途多选分支 ·括号的用途捕获分组 ·括号的用途反向引用 正则表达式 学习笔记3 完 转载于:https://blog.51cto.com/jooben/317570