负向零宽断言 备忘录

负向零宽断言

一个更复杂的例子: (?<=<(/w+)>).*(?=<///1>) 匹配不包含属性的简单HTML标签内里的内容。 (<?(/w+)>)指定了这样的前缀: 被尖括号括起来的单词(比如可能是<b>), 然后是.*(任意的字符串), 最后是一个后缀(?=<///1>)。 注意后缀里的//,它用到了前面提过的字符转义; /1则是一个反向引用,引用的正是捕获的第一组, 前面的(/w+)匹配的内容,这样如果前缀实际上是<b>的话, 后缀就是</b>了。 整个表达式匹配的是<b>和</b>之间的内容 (再次提醒,不包括前缀和后缀本身)。

 

(?<= # 断言要匹配的文本的前缀 <(/w+)> # 查找尖括号括起来的字母或数字(即HTML/XML标签) ) # 前缀结束 .* # 匹配任意文本 (?= # 断言要匹配的文本的后缀 <///1> # 查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签 ) # 后缀结束

你可能感兴趣的:(html)