我有一个文本字段,用户将输入逗号分隔的关键字或关键短语,然后服务器将使用这些值来检查多个文本匹配的主体。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);'不容易吗? –