我想要製作一個匹配一個不包含在「a」標籤中的詞的正則表達式,我必須用鏈接替換一些詞,而不會中斷已存在的鏈接。 例如,搜索術語「計算器」,這應該與找到一個不包含在標籤中的詞
stackoverflow is magic
但這些都不兩者應該:
Jump to <a href="stackoverflow.com">stackoverflow</a>
我該怎麼辦呢?即使我使用HTML Parser,我仍然面臨着如何將preg_replace應用於不包含在「a」標籤中的術語的問題。
我發現這個表達式好聽的話:
(?![^<]*a>)stackoverflow
但不幸的是,這並不在PHP工作。 非常感謝您的幫助
另請參見:[PHP的正則表達式來匹配HTML標籤外的關鍵字 mario
一個簡短的但hackish的方式將str_replace('> stackoverflow <','> 9gag <',$ URL); –
使用'DOMDocument'來提取文本節點並搜索你的單詞。要排除研究中鏈接的文字,請使用'DOMXPath'。 –