我有一個字典單詞列表,我加載到一個數組中。我從數據庫表文本字段中獲取一段文本。用超鏈接替換單詞,單獨留下超鏈接文本,
我循環遍歷字典中的單詞,並且在每次迭代中,我檢查文本塊是否出現該單詞。無論何時找到匹配項,我都會使用超鏈接版本替換該塊中的單詞,因此,當發佈文本塊時,可以使用鼠標指針懸停在其上,並彈出一個定義。
這是簡單實現了正則表達式:
$text = preg_replace("/($dictionary_word)/i", '<a href="" class="glossary_term">$1</a>', $text, -1, $count);
如果我運行「字典單詞連接」比不過一次,則鏈接將被成倍上漲。
我需要做的是代碼正則表達式,用於檢測到達字典單詞時尚未關閉的打開定位標記。這樣我就會知道這個詞已經被鏈接了,所以我跳過了它。
我嘗試了各種展望未來的組合,並沒有成功。
所以,顯而易見的問題是,爲什麼不止一次地運行它? – nickb
嗨,尼克,如果更多的單詞被添加到字典中,我會重新運行替換。有許多記錄都有一段文字。另外,替換前的原始文本可能有其他鏈接,我不想在鏈接中放置鏈接。 –
我發現如果你在後面或前面尋找的模式是可變長度的,你不能做一個後視或前瞻斷言。 即您在後面或前面尋找的模式中不能使用'*'或'+'。 –