2012-12-16 65 views
1

我想突出顯示PHP中某個句子中的關鍵字。突出顯示關鍵字

這是我的代碼:

preg_replace("/\p{L}*?".preg_quote($string)."\p{L}*/ui", "<b>$0</b>", $info->plaintext) 

現在我想知道接下來該怎麼和以前的話突出。

例子:

好人並不一定必須是溫暖,可愛的

如果關鍵字是可愛,應該導致溫暖,可愛的被突出。因此腳本應該繞過和,或,突出溫暖它。

另一個例子,簡單的一個(good是關鍵字):

一句話:

這所學校是一個非常好的一個。

結果:

這所學校是一個非常好的一個

+0

請張貼我們的一些測試數據,所以我們可以看到投入的樣子,謝謝。 –

+0

您能否定義一條關於如何選擇短語的規則? –

+0

你到目前爲止嘗試過什麼?現在這聽起來很像「請給我codez」給我。 – hakre

回答

2

這些方針的東西:

preg_replace('/(\p{L}+\s+((and|or|a)\s+)*)?\p{L}*?' . preg_quote($string) . '\p{L}*/ui', '<b>$0</b>', $info->plaintext) 

相同的邏輯就申請到了最後,如果你需要「和*」之後,太。 Here's a demo.

+0

旁邊的單詞謝謝,就是這樣。唯一的問題是,這個腳本只是搜索關鍵字和它之前的單詞。我們能包括這個詞嗎? –

+0

我們可以將$ string之後的單詞添加到高亮區嗎? –

+0

@MacTaylor:當然;就像我說的,只是使用相同的邏輯。 preg_replace('/(\ p {L} + \ s +((and | or)\ s +)*)?\ p {L} *?'。preg_quote($ string)。'\ p {L} *( \ s +(and | or))* \ s + \ p {L} +)?/ ui','$ 0',$ info-> plaintext)'[Demo of that](http://codepad.viper- 7.com/jowLxN) – Ryan

相關問題