Splunk 正则表达式电子邮件表达式



当尝试在我们的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

最新更新