сравнить часть строки с помощью php - PullRequest
0 голосов
/ 29 января 2010

Я хочу проверить, существует ли ключевое слово поиска «cli», «ent» или «cl» в строке «client» и нечувствительно к регистру. Я использовал функцию preg_match с шаблоном '\ bclient \ b'. но это не показывает правильный результат. Ошибка совпадения не найдена.

Пожалуйста, помогите

Спасибо

Ответы [ 3 ]

2 голосов
/ 29 января 2010

Я бы не использовал регулярные выражения для этого, это дополнительные издержки и сложность, когда бы хватило обычной строковой функции. Почему бы не использовать вместо stripos () ?

$str = 'client';
$terms = array('cli','ent','cl');
foreach($terms as $t) {
    if (stripos($str,$t) !== false) {
        echo "$t exists in $str";
        break;
    }
}
0 голосов
/ 29 января 2010

\b является границей слова, она не будет соответствовать cli в client, вам нужно удалить \b

0 голосов
/ 29 января 2010

Попробуйте шаблон /cli?|ent/

Пояснение:

cli соответствует первой части. Я? делает I необязательным в поиске.

| означает или, и соответствует cli или ent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...