我正在創建一個PHP正則表達式腳本,它可以匹配和替換字符串中的單詞。PHP:正則表達式在Lookbehind Assertions中使用通配符替換單詞
正則表達式需要匹配唯一完整的話,我可以很容易地做到:
/\b(SEARCH_TERM)\b/
我遇到的問題是,某些字符串包含HTML元素,如<一個>標籤和<IMG>標籤,其中HREF和SRC屬性有時包含其路徑中的要被替換的單詞。 如果這些單詞在這些元素中被替換,那麼鏈接或圖像將不再起作用。
例如,對於下面的例子中字符串「SEARCH_TERM」一詞取代「測試」:
my test string <a href="http://www.google.com?q=my+test+string">link</a>
將返回:
my SEARCH_TERM string <a href="http://www.google.com?q=my+SEARCH_TERM+string">link</a>
而我需要它忽略href屬性文字和返回:
my SEARCH_TERM string <a href="http://www.google.com?q=my+test+string">link</a>
我看過使用正則表達式的Lookbehind Assertions(as just bel ow),但不允許使用可變長度的通配符。
/(?<!(href|src)=.*)\b(SEARCH_TERM)\b/
注意:我特別需要使用正則表達式,而不是DOM解析器。
使用[HTML解析器(http://stackoverflow.com/questions/3577641/parsing-and-processing-html- xml)..不要使用正則表達式。相信我,它更容易使用解析器解析html,而不是使用正則表達式來執行。 – Anirudha
正如底部所述,我特別需要使用正則表達式來完成此操作。 – ticallian
所有最好然後:P – Anirudha