简体   繁体   English

Grok模式匹配电子邮件地址

[英]Grok pattern to match email address

I have the following Grok patterns defined in a pattern file 我在模式文件中定义了以下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}

For some reason this doesn't compile when run against http://grokdebug.herokuapp.com/ with the following input, it simply returns "Compile error" 由于某些原因,当使用以下输入对http://grokdebug.herokuapp.com/运行时,此命令无法编译,它仅返回“编译错误”

Node1\Spam.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

Is there some reason I'm getting a compile error / will this even match the email in that log line? 是否由于某些原因我遇到了编译错误?这甚至与该日志行中的电子邮件匹配吗?

Thanks, 谢谢,

You may use 您可以使用

(?<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}))*)

or: 要么:

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

They work at grokdebug.herokuapp.com . 他们在grokdebug.herokuapp.com上工作。 BTW, https://github.com/rgevaert/grok-patterns/blob/master/grok.d/postfix_patterns defines the email pattern differently: EMAILADDRESS %{EMAILADDRESSPART:local}@%{EMAILADDRESSPART:remote} , it may also work. 顺便说一句, https://github.com/rgevaert/grok-patterns/blob/master/grok.d/postfix_patterns定义了不同的电子邮件模式: EMAILADDRESS %{EMAILADDRESSPART:local}@%{EMAILADDRESSPART:remote} ,它也可能起作用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM