Я хочу проверить строку, чтобы увидеть, что она содержит определенные слова.
то есть:
$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('~\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 (), поскольку они будут быстрее».