用于匹配电子邮件地址的 grok 模式



我在模式文件中定义了以下 Grok 模式

HOSTNAME b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(.?|b)
EMAILLOCALPART [a-zA-Z][a-zA-Z0-9_.+-=:]+
EMAILADDRESS %{EMAILLOCALPART}@%{HOSTNAME}

由于某种原因,当使用以下输入对 http://grokdebug.herokuapp.com/运行时,这不会编译,它只是返回"编译错误"

Node1Spam.log.2016-05-03   171 1540699703 03/May/2016 00:00:01 +0000  INFO  [http-bio-0.0.0.0-8001-exec-20429] EngagementServiceImpl logDefault 192.168.1.122 77777777777777777 DAMIEN@DAMIEN.COM > initiated Stuff: 8675309, provider: 8675309, member: 8675309

是否有某种原因我收到编译错误/这甚至会与该日志行中的电子邮件匹配吗?

谢谢

您可以使用

(?<email>[a-zA-Z0-9_.+=:-]+@[0-9A-Za-z][0-9A-Za-z-]{0,62}(?:.(?:[0-9A-Za-z][0-‌​9A-Za-z-]{0,62}))*)

或:

(?<email>[w.+=:-]+@[0-9A-Za-z][0-9A-Za-z-]{0,62}(?:[.](?:[0-9A-Za-z][0-9A-Za-z‌​-]{0,62}))*)

他们在 grokdebug.herokuapp.com 工作。顺便说一句,https://github.com/rgevaert/grok-patterns/blob/master/grok.d/postfix_patterns 以不同的方式定义电子邮件模式:EMAILADDRESS %{EMAILADDRESSPART:local}@%{EMAILADDRESSPART:remote},它也可能有效。

最新更新