Как проверить, что строка не содержит «птица» или «кошка» с регулярным выражением? - PullRequest
3 голосов
/ 17 апреля 2011

Пожалуйста, не говорите мне об использовании логического !, чтобы проверить его. Потому что я хочу использовать плагин jquery, чтобы сделать что-то в моей функции. И я хочу исправить это только раздел регулярных выражений ... Это возможно?

Ответы [ 3 ]

6 голосов
/ 18 апреля 2011

лучше, ИМО:

preg_match('/^(?!.*(cat|bird).*$)(......)/xs', $string);
2 голосов
/ 17 апреля 2011

Я считаю, что это более просто и менее запутанно;

$string = ", user, test, me";
if (!preg_match("#(.*?)(cat|bird)(.*?)#", $string)) {
    echo "yes, there is no cat or bird";    
}
else{
    echo "there is cat or bird";
}

Я бы рекомендовал вам проверить это здесь http://www.phpro.org/tutorials/Introduction-to-PHP-Regex.html

2 голосов
/ 17 апреля 2011

Эту конструкцию утверждения / отрицательного утверждения можно использовать для проверки того, что вся строка не содержит bird или cat:

preg_match('/(?=^((?!cat|bird).)+$)  (......)/xs', $string);

Я предполагаю, что она не особенно эффективна.Но, по крайней мере, утверждение не зависит от фактического регулярного выражения совпадения - как пример (......) здесь.

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