簡體   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