Как проверить, не включена ли последовательность символов в группу последовательностей символов с помощью регулярных выражений? - PullRequest
2 голосов
/ 10 февраля 2011

Мне нужно переписать URL-адреса, которые не включают в себя определенные слова, такие как «контакт», «о», «список» и т. Д. (Я знаю, что было бы проще найти те, для которых я хочу переписать, но в моем случае это невозможно).

Я нашел, как проверить одно слово:

^(?:(?!list).)+$

Есть ли способ проверить что-то вроде:

^(?:(?!list).)+$ AND ^(?:(?!contact).)+$ AND ^(?:(?!about).)+$ AND ...   ?

Ответы [ 2 ]

3 голосов
/ 10 февраля 2011
^(?:(?!list|contact|about).)+$

охватит все эти случаи.

2 голосов
/ 10 февраля 2011

Если вы просто хотите найти несколько слов в URL, вы можете сделать это:

(list|contact|about)

Если в URL есть какое-либо из слов, это true. В зависимости от контекста, вы можете взять минус этого совпадения, например:

PHP: !preg_match("/(list|contact|about)/",$url)

mod_rewrite: RewriteRule !(list|contact|about) /404.html

Надеюсь, это то, что вам нужно!

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