我有一個文本字段,用戶將輸入逗號分隔的關鍵字或關鍵短語,然後服務器將使用這些值來檢查多個文本匹配的主體。PHP正則表達式關鍵短語匹配
所以基本上我需要的是匹配一個精確的短語,不區分大小寫,與文本正文中的可能空格。
我很容易匹配的關鍵字,通過生成如下的正則表達式:
例關鍵字:peanut, butter, jelly
正則表達式生成的:/peanut|butter|jelly/i
但是具有空間不工作。 peanut butter, jelly sandwich, delicious
正則表達式:即使我有\s
例替代空間在給定值/peanut\sbutter|jelly\ssandwich|delicious/i
什麼是正確的正則表達式來精確匹配詞組?不區分大小寫,並使用PHP的preg_match
?
謝謝。
編輯
這是我在做什麼:(不更換空格\s
,因爲它沒有工作)
$keywordsArray = array_map('trim', explode(',', $keywords));
$keywordsArrayEscaped = array_map('preg_quote', $keywordsArray);
$keywordsRegex = '/' . implode('|', $keywordsArrayEscaped) . '/i';
以上產生如上所述的表達式
下面,我簡單做preg_match($keywordsRegex, $text);
我沒有看到你的問題。空間在preg_match中適用於我。提供一些代碼。 – John
您試圖檢查的目標文本來自哪裏?他們編碼像' '? – Diryboy
'$ keywords = explode(「,」,$ in);'不容易嗎? –