2017-02-22 21 views
-5

Я использую следующее Regex для проверки адреса электронной почты. Как разрешить акцентированные символы?Разрешить акцентированные символы для адреса электронной почты Regex

^([a-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+(\.([a-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$ 

Вот адрес электронной почты проверяемого: äöüéè@paris.com

я в конечном итоге изменения регулярного выражения использовать \ W вместо A-Za-z0-9, который позволит международным символов через C#.

^([\w!#\$%*/?\|\^\{\}`~&'+\-=_])+(\.([\w!#\$%*/?\|\^\{\}`~&'+\-=_])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([\w])+(([\-])+([\w])+)*\.)+([a-zA-Z])+(([\-])+([\w])+)*))$ 
+0

Просто добавьте их в классе символов. – Toto

+2

«Поскольку регулярные выражения не полностью стандартизированы, все вопросы с этим тегом должны также содержать тег, определяющий применимый язык программирования или инструмент». [См. Здесь.] (Http://stackoverflow.com/tags/regex/info) – ClasG

+0

Добавлен тег C#. Я использую регулярное выражение выше в течение многих лет. Я не могу вспомнить, где я его нашел. –

ответ

2

Добавьте акцентированных символов в классе символов:

[äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_] 

Это должно быть сделано также для другого класса символов.

Или, если вы хотите иметь дело с любым языком, и если ваши регулярные выражения вкусовыми свойствами поддержка Юникода:

[\p{L}0-9!#\$%*/?\|\^\{\}`~&'+\-=_] 
1

Как Toto предложил:

^([äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+(\.([äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+)*@ 

Я отрезала от остальной части регулярного выражения, все после того, как @ остается.

EDIT: Пожалуйста, обратите внимание, чтобы добавить эти символы в обоих классах символов, если вы хотите придерживаться своего регулярного выражения

 Смежные вопросы

  • Нет связанных вопросов^_^