存在撇号,一些电子邮件提供商喜欢它们;我们假设它们是有效的电子邮件字符。请不要争论。
现在给出了这个假设 - 以下android代码未通过撇号测试;
return android.util.Patterns.EMAIL_ADDRESS.matcher("michaelo'reilly@yahoo.com").matches();
当它返回'true'时返回'false'
我该如何解决这个问题?正则表达式?
答案 0 :(得分:2)
使用Android android.util.Patterns.EMAIL_ADDRESS strange behaviour处给出的表达式,并在@:
之前的可接受字符列表中添加单引号[a-zA-Z0-9\\+\\.\\_\\%\\-\\+']{1,256}[\\@]{1}[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}([\\.]{1}[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25})+
这匹配michaelo' reilly@yahoo.com。