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); 

Но этот метод соответствует только одному слову. Как проверить несколько слов?

Solutions Collecting From Web of "preg_match для нескольких слов"

Что-то вроде:

 preg_match_all('#\b(rain|dry|clear)\b#', $string, $matches); 
 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 matches.

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

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

«Не используйте preg_match (), если вы хотите только проверить, содержится ли одна строка в другой строке. Вместо этого используйте strpos () или strstr (), поскольку они будут быстрее».