2014-02-28 179 views
0

当试图创建我们的Splunk>服务器内的电子邮件警报(对于那些谁关心4.3版),我们收到我已经追溯到restmap.conf文件的电子邮件无效的错误消息。当前表达式是:Splunk的正则表达式电子邮件表达

validate(match('action.email.to', "(?i)^(?:[^@\s][email protected](?:[^@\s.]+\.)+[a-z]{2,})(?:\s*[,;]\s*(?:[^@\s][email protected](?:[^@\s]+\.)+[a-z]{2,}))*$"), "One of the email addresses in 'action.email.to' is invalid")

我不擅长的正则表达式所有,这一次似乎是相当复杂的。我想表达的,让E-mail地址,如[email protected]我试图创建或修改使用http://regex101.com/#PCRE当前正则表达式,但是这是一个有点超过我的头还在。

+1

请参见[使用正则表达式来验证的电子邮件地址(http://stackoverflow.com/questions/201323/using-a-regular-expr分裂国家对验证-的电子邮件地址)。 – Sam

回答

1

好,目前正则表达式是这样的:

(?i)^(?:[^@\s][email protected](?:[^@\s.]+\.)+[a-z]{2,})(?:\s*[,;]\s*(?:[^@\s][email protected](?:[^@\s]+\.)+[a-z]{2,}))*$ 

它未能匹配[email protected]因为电子邮件的.p1部分有一个数字(1)。

所以在你的正则表达式..,在这一部分:[a-z]{2,}。你只需要以允许1或整数设置0-9像这样:[a-z0-9]{2,}[a-z1]{2,}

因此,这是你的完整的regex,修改,以适合自己情况的工作:

(?i)^(?:[^@\s][email protected](?:[^@\s.]+\.)+[a-z0-9]{2,})(?:\s*[,;]\s*(?:[^@\s][email protected](?:[^@\s]+\.)+[a-z0-9]{2,}))*$ 

工作正则表达式的例子:

http://regex101.com/r/lX7yM5

+2

由于看起来像做了,张贴后,我也得到了更多单纯一个工作'^ [_ A-Z0-9] +(\。[_ A-Z0-9] +)* @ [A-Z0-9] + (\。[A-Z0-9] +)*(\。[A-Z0-9] {2,4})$'这使我更好地理解语法。 – JMeterX