我有条短信
=“+abc@gmail.com你好酷+def@gmail.com”
我想从文本中提取电子邮件地址并将其存储在数组中。我想用正则表达式来做这件事。我找到了正则表达式,但我无法将电子邮件保存到数组中。
我试过了
let regEx = "/(\\+[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)/gi"
if let email = NSPredicate(format: "SELF MATCHES %@", regEx) {
//what to do here
}
还是我做错了?我知道这是一个基本的问题,请帮帮忙
先谢了。
5条答案
按热度按时间pw136qt21#
这些代码对我很有效。你可以从here checkout 电子邮件正则表达式。
SWIFT 5
SWIFT 3
j13ufse22#
我建议使用
NSRegularExpression
类而不是NSPredicate
。正则表达式的格式来自ICU。下面是一种方法:
nnt7mjpx3#
看起来你的正则表达式名称是错误的。你声明它为
regEx
,但在你的NSPredicate
中你使用了emailRegEx
。rjee0c154#
你需要在邮件地址里加上加号吗?
地址中没有+符号:
([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)
结果:[”abc@gmail.com“,“def@gmail.com“]
地址中带有+号:
([\\+a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)
结果:["+abc@gmail.com”,“+def@gmail.com”]
ippsafx75#
下面是我创建的字符串扩展名,用于从中提取电子邮件它在swift 4中运行良好。
用法
//结果[”adil@gmail.com“,“fraz@gmail.pk“,“janesmit@precisiencenstruction.com“]