-1

正则表达式需要接受+,-,&需要@在电子邮件验证 之前接受

([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})在这个正则表达式中它不接受。

任何人都可以为我提供正确的正则表达式。

例子:

演示+wifi-mail&name@gmail.com

4

3 回答 3

2

使用这个它会帮助你。

([\\w-\\.\\+\\-\\&}]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})

NSString *phone=@"demo+wifi-mail&name@gmail.com";
NSString *pNRegex = @"([\\w-\\.\\+\\-\\&}]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})";
NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
BOOL check=[PNTest evaluateWithObject:phone ];
NSLog(@"%i",check);----> 1
于 2013-05-28T05:47:16.383 回答
1

[\w\.]是一个字符类(我暂时删除了-)。方括号内的每个字符都由此类匹配。因此,您的班级匹配所有字母、数字和下划线(由\w部分完成)和点。

如果您想要其他字符,只需将它们添加到字符类中,例如[\w.+&-].

小心-字符,它在字符类中具有特殊含义,要么对其进行转义,要么将其放在开头或结尾。

但请注意,您的正则表达式仍未匹配所有有效的电子邮件地址,请参阅评论中的链接。

单个字符(没有特殊含义)或预定义的类写在一个类中没有意义,[\w]\w.

于 2013-05-28T05:44:46.573 回答
0

([\w-.+-\&}]+)@((?:[\w]+.)+)([a-zA-Z]{2,4}) 现在它可以工作了!

于 2013-05-30T07:06:29.827 回答