您好我想創建一個正則表達式,將做以下PHP正則表達式圍繞搜索短語
搶搜索短語前5個字的字集(或x如果只有X字有)和5從(當我說的話我的意思的單詞或數字無論是在文本塊)的文本塊
如
歡迎搜索短語後的單詞(或x如果只有X字有)堆棧溢出!訪問您的用戶頁面以設置您的姓名和電子郵件。
如果您要搜索「訪問」它將返回: 歡迎來到堆棧溢出!訪問你的用戶頁面設置
這個想法是在php中使用preg_match_all給我一堆搜索結果,顯示文本中搜索短語出現在搜索短語的每次出現的位置。
在此先感謝:d
在子記有可能是一個更好的辦法讓我的結果,如果你覺得有請隨意扔在游泳池因爲我不知道這是我認爲,最好的只是第一種方式做我需要:d
+1使用真正的正則表達式。但是你不需要\ S * \ b的東西。假設你的搜索詞是$關鍵字,'/(\ S + \ s +){0,5}'。 $關鍵字。 '(\ s + \ S +){0,5} /'工作得很好。 – Peter
這個示例文本中不需要它。但是,如果關鍵字可能被除了空白以外的東西所包圍,則需要它。假設關鍵字是'Overflow',那麼你需要'(\ S + \ s +){0,5} \ S * \ boverflow \ b \ S *(\ s + \ S +){0,5}'或者你贏了'不會得到一場比賽。 –
謝謝你,我完成的代碼.' <?php $ preg_safe = str_replace(「」,「\ s」,preg_quote($ search)); ($ s \ S +){0,8}/ix「; if(preg_match_all($ pattern,$ row ['news_text'],$ matches)){ $ row ['extract'] = str_replace(strtolower($ search),「「,strtolower($ matches [0] [0])); } else { $ row ['extract'] = false; }?> –