我正在使用以下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])+)*))$
答案 0 :(得分:2)
在字符类中添加重音字符:
[äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_]
这也必须为其他角色类完成。
或者,如果您想处理任何语言,并且您的正则表达式支持unicode属性:
[\p{L}0-9!#\$%*/?\|\^\{\}`~&'+\-=_]
答案 1 :(得分:1)
正如托托所说:
^([äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+(\.([äöüéèa-zA-Z0-9!#\$%*/?\|\^\{\}`~&'+\-=_])+)*@
我已经剪掉了剩余的正则表达式,@之后的所有内容。
编辑:如果你想坚持你的正则表达式,请注意在两个字符类中添加这些字符