Как игнорировать специальные символы в именованном формате электронной почты с помощью регулярных выражений в VBScript - PullRequest
0 голосов
/ 23 мая 2011

У меня есть VBScript, который проверяет именованный формат электронной почты, если правильно, используя регулярное выражение. Однако для именованных строк электронной почты со специальным символом мое регулярное выражение не совпадает с именованным адресом электронной почты:

"Davé Lory, Sr." <jhonson@test.com>

Я использую регулярное выражение для проверки правильного именованного электронного письма:

^\s*(([\"][\sa-zA-Z0-9_\-\.\'\,\&]*[\"])|([\sa-zA-Z0-9_\-\.\'\,\&]*))*\s*[\(<]\s*([A-Za-z0-9_\x27]+((\.|-)['A-Za-z0-9_\x27]+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)\s*[\)>]\s*$

Но это не может совпадать, если в указанном письме есть специальный символ, например é или È и т. Д.

Как я могу игнорировать эти специальные символы в регулярном выражении?

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

Спасибо.

1 Ответ

2 голосов
/ 23 мая 2011

Вы не можете игнорировать их, вам нужно сопоставить их.

Вы можете попробовать это здесь

^\s*((\"[^"]*?\")|([\sa-zA-Z0-9_\-\.\'\,\&]*))*\s*[\(<]\s*([A-Za-z0-9_\x27]+((\.|-)['A-Za-z0-9_\x27]+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)\s*[\)>]\s*$

Я удалил ваш [\"][\sa-zA-Z0-9_\-\.\'\,\&]*[\"] с

\"[^"]*?\"
  1. вам не нужны квадратные скобки вокруг одного символа

  2. [^"]*? - это ленивый матч, который будет соответствовать всему, что не является " доследующий "

Вы можете увидеть это онлайн здесь на Рубулярное

Я не проверил остальную часть выражения, что у меня естьвидно, что есть много групп захвата.Если вам не нужен результат, вы можете сделать так, чтобы они не захватывались на ?: после открывающей скобки (например, (?:\"[^"]*?\")).

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