允许电子邮件地址正则表达式的重音字符

时间:2017-02-22 14:33:34

标签: c# 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

我最后修改了正则表达式,使用\ _而不是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])+)*))$

2 个答案:

答案 0 :(得分:2)

在字符类中添加重音字符:

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

这也必须为其他角色类完成。

或者,如果您想处理任何语言,并且您的正则表达式支持unicode属性:

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

答案 1 :(得分:1)

正如托托所说:

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

我已经剪掉了剩余的正则表达式,@之后的所有内容。

编辑:如果你想坚持你的正则表达式,请注意在两个字符类中添加这些字符

相关问题