当尝试在我们的Splunk>服务器(对于那些关心的人是4.3版)中创建电子邮件警报时,我们收到一封无效的电子邮件错误消息,我已经追溯到restmap.conf
文件。 当前表达式为:
validate( match('action.email.to', "(?i)^(?:[^@s]+@(?:[^@s.]+.)+[a-z]{2,})(?:s*[,;]s*(?:[^@s]+@(?:[^@s]+.)+[a-z]{2,}))*$"), "One of the email addresses in 'action.email.to' is invalid")
我根本不擅长正则表达式,这个似乎相当复杂。 我希望表达式允许电子邮件地址,例如john.smith@abc.p1
我尝试使用http://regex101.com/#PCRE
创建或修改当前正则表达式,但这仍然有点超出我的头脑。
好的,当前的正则表达式是这样的:
(?i)^(?:[^@s]+@(?:[^@s.]+.)+[a-z]{2,})(?:s*[,;]s*(?:[^@s]+@(?:[^@s]+.)+[a-z]{2,}))*$
它无法匹配john.smith@abc.p1
因为电子邮件的.p1
部分有一个数字(1)。
所以在你的正则表达式..,在这一部分:[a-z]{2,}
. 您只需要允许一个1
或整数集0-9
如下所示:[a-z0-9]{2,}
或[a-z1]{2,}
所以这是你的完整正则表达式,修改后适合你的情况:
(?i)^(?:[^@s]+@(?:[^@s.]+.)+[a-z0-9]{2,})(?:s*[,;]s*(?:[^@s]+@(?:[^@s]+.)+[a-z0-9]{2,}))*$
工作正则表达式示例:
http://regex101.com/r/lX7yM5