我有类似Food & Drinks
的文本。我需要将这个词与food
、drinks
或seafood
匹配。。。等等。有人能帮我拿这个吗。提前谢谢。
$res = "campbell italian seafood. Italian Food of 2005 Award. Some drinks are very tasty";
$pattern = '/^((?!Food & Drinks).)*$/s';
if(preg_match_all($pattern, substr($res,10), $matches, PREG_OFFSET_CAPTURE)){
echo ++$count;
}else{
echo $count;
}
提前谢谢。
对于问题中的特定示例,以下内容将与seafood
、Food
和drinks
匹配
/'w*(?:Food|Drinks)'w*/i
如果你不在乎匹配整个单词seafood
,只想匹配其中的食物部分(如果你只是计算匹配的次数,这就是你所需要的),你可以简单地使用:
'/Food|Drinks/i'
我不知道你从哪里得到字符串Food & Drinks
,也不知道其他可能的搜索词是什么样子的,所以我只能建议你这个问题中的具体例子。但要从Food & Drinks
到Food|Drinks
,可以使用str_replace
。
以下是在PHP中实现的示例:
$str = 'Food & Drinks';
$terms = str_replace(' & ', '|', $str);
$res = "campbell italian seafood. Italian Food of 2005 Award.
Some drinks are very tasty";
$pattern = '/'w*(?:'.$terms.')'w*/i';
preg_match_all($pattern, $res, $matches);
echo 'Count: '.count($matches[0]);
print_r($matches[0]);
输出:
Count: 3
Array ( [0] => seafood [1] => Food [2] => drinks )