[英]Better way to write this Regex? Negative Lookahead
我想我大部分时间都在工作,但是想知道是否有更好的方法可以编写它:
/\b(Word)(?!.*?<\/a>)(?!.*?>)\b/
我试图匹配未链接的Word,并且它不是HTML标记的一部分(例如<a href="" title="Word">
不匹配)。
据我了解,如果可能的话,最好使用否定的字符类,而不是使其变得懒惰。 我尝试这样做,但无法弄清楚。 我什至不知道这样做是否可行,但我想我会把它扔在那里。
您要查找的否定字符类是[^<>]*
。 这将跳过任何标签边界。
/\b(Word) (?! [^<>]*<\/a> | [^<]*>) \b/x
注意,如果链接中包含更多标记,寻找</a>
将允许正则表达式匹配。 例如,不会跳过加粗的<a>..<b>Word</b>..</a>
单词。 (检查这些事情需要比前瞻更多的工作。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.