繁体   English   中英

编写此正则表达式的更好方法? 负前瞻

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM