我使用下面的代碼高亮搜索結果中突出顯示搜索resuls:用繩子部分
$text = preg_replace("/\b($word)\b/i", '<span class="highlight_word">\1</span>', $text);
,其工作的罰款。
但preg_replace返回整個字符串並突出顯示匹配的單詞。
我需要得到一部分字符串,只有整個字符串。
一個場景是在第一場比賽之前獲得100個字符和100個字符。任何幫助將不勝感激。
我使用下面的代碼高亮搜索結果中突出顯示搜索resuls:用繩子部分
$text = preg_replace("/\b($word)\b/i", '<span class="highlight_word">\1</span>', $text);
,其工作的罰款。
但preg_replace返回整個字符串並突出顯示匹配的單詞。
我需要得到一部分字符串,只有整個字符串。
一個場景是在第一場比賽之前獲得100個字符和100個字符。任何幫助將不勝感激。
如果你想100個字符之前和之後然後就從/\b($word)\b/i
改變你的正則表達式來/^.*?(.{0,100})\b($word)\b(.{0,100}).*?$/i
那麼你的更換而改變,以\1<span class="highlight_word">\2</span>\3
而乾脆: $text = preg_replace("/^.*?(.{0,100})\b($word)\b(.{0,100}).*?$/i", '\1<span class="highlight_word">\2</span>\3', $text);
編輯:海報後更新評論。這應該做你想做的。
Edit2:如果任何一邊沒有100個字符,則正則表達式會失敗。無論現在這個詞前後是否有100個字符,這一個都會起作用。如果少於100個字符,它們將全部匹配。
編輯3:更新回覆後海報評論。
通過這種修改它突出顯示所有的字符串,但我想強調只有$詞,前後有100個,但不是highlighted.Thanks您的回覆 – ntan
更新原來的答案,以更好地適應你想要的東西。 – jmlsteele
它僅強調$字,但返回整個文本。它不返回100前後。我甚至更改爲{0,1}以查看會發生什麼,但仍然返回整個$文本 – ntan