Я хочу проверить, существует ли ключевое слово «cli» или «ent» или «cl» в строке «клиент» и регистр нечувствителен к регистру. Я использовал функцию preg_match с шаблоном '\ bclient \ b'. но он не показывает правильный результат. Совпадение не обнаружено.
Пожалуйста, помогите
благодаря
Я бы не использовал регулярные выражения для этого, это дополнительные накладные расходы и сложность, где достаточно регулярной строковой функции. Почему бы не пойти с stripos () вместо этого?
$str = 'client'; $terms = array('cli','ent','cl'); foreach($terms as $t) { if (stripos($str,$t) !== false) { echo "$t exists in $str"; break; } }
Попробуйте шаблон /cli?|ent/
Объяснение:
cli соответствует первой части. I? делает i необязательным в поиске.
|
означает или, что соответствует cli
, или ent
.
\b
– граница слова, он не будет соответствовать cli
client
, вам нужно удалить \b