2014-02-28 156 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