Как я могу проверить веб-адрес и отклонить письмо с регулярным выражением? - PullRequest
1 голос
/ 12 сентября 2009

Где я сталкиваюсь с контрольно-пропускным пунктом, пытается проверить это

(?<http>(http|ftp|https):\/\/)?(?<address>([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)

при отклонении выражения, если оно содержит знак @.

Я пробовал несколько вариантов безуспешно.

Что будет работать, если я скажу, чтобы убедиться, что в нем нет символов @, но я не хочу требовать использования символа с синтаксисом [^@]. Итак, как мне сказать регулярному выражению принять \w и отклонить @ одновременно. Я не могу сделать [\w^@], насколько мне известно.

Моя сложность в том, что я использую регулярные выражения замены. Вы предлагаете мне тогда использовать заполнитель и десять совпадений с этим потом?

Ответы [ 2 ]

3 голосов
/ 12 сентября 2009

Вам не нужно сводить все в одно регулярное выражение. Например, вы можете сопоставить с существующим регулярным выражением, а затем проверить с помощью дополнительного регулярного выражения, что строка не имеет знака @.

0 голосов
/ 12 сентября 2009

Я согласен с Недом. Используйте два регулярных выражения. Вы можете получить их из нескольких источников, включая http://regexlib.com/

...