preg_match用于多个单词

时间:2012-03-13 18:01:14

标签: php

我想测试一个字符串,看它包含某些单词。

即:

$string = "The rain in spain is certain as the dry on the plain is over and it is not clear";
preg_match('`\brain\b`',$string);

但该方法只匹配一个单词。如何检查多个单词?

4 个答案:

答案 0 :(得分:17)

类似的东西:

preg_match_all('#\b(rain|dry|clear)\b#', $string, $matches);

答案 1 :(得分:3)

preg_match('~\b(rain|dry|certain|clear)\b~i',$string);

您可以在正则表达式中将竖线字符(|)用作“或”。

如果您只是需要知道是否存在任何单词,请使用上述preg_match。如果您需要匹配任何单词的所有出现,请使用preg_match_all

preg_match_all('~\b(rain|dry|certain|clear)\b~i', $string, $matches);

然后检查$matches变量。

答案 2 :(得分:2)

preg_match('\brain\b',$string, $matches);
var_dump($matches);

答案 3 :(得分:2)

http://php.net/manual/en/function.preg-match.php

“如果你只想检查另一个字符串中是否包含一个字符串,请不要使用preg_match()。请使用strpos()或strstr(),因为它们会更快。”