我想測試一個字符串以查看它是否包含某些單詞。preg_match用於多個單詞
即:
$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);
但該方法僅匹配一個字。我如何檢查多個單詞?
我想測試一個字符串以查看它是否包含某些單詞。preg_match用於多個單詞
即:
$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);
但該方法僅匹配一個字。我如何檢查多個單詞?
喜歡的東西:
preg_match_all('#\b(rain|dry|clear)\b#', $string, $matches);
preg_match('\brain\b',$string, $matches);
var_dump($matches);
缺少分隔符,並且不返回多個值 – 2012-03-13 18:04:03
請參閱編輯的問題 – Autolycus 2012-03-13 18:05:53
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
變量。
http://php.net/manual/en/function.preg-match.php
「不使用的preg_match(),如果你只是想檢查一個字符串包含在另一個字符串。使用strpos()或的strstr(),而不是因爲他們會更快。」
preg_match_all() – 2012-03-13 18:02:17
請參閱編輯的問題 – Autolycus 2012-03-13 18:05:33