正则表达式需要接受+, - ,&在@之前

时间:2013-05-28 05:29:05

标签: ios regex titanium

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

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

任何人都能为我提供正确的正则表达。

示例:

  

演示+ WIFI电子邮件与安培; name@gmail.com

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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

小心-字符,它在字符类中有特殊含义,可以将其转义或放在开头或结尾。

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

单个字符(没有特殊含义)或在类中编写的预定义类没有意义,[\w]\w完全相同。

答案 2 :(得分:0)

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