繁体   English   中英

RegEx-在日志文件中查找电子邮件

[英]RegEx - Looking for emails inside of a log file

我正在寻找一个正则表达式,它将测试是否与字符串匹配,例如:

mxtreme1.log:5月12日07:00:00 10.1.1.175 postfix / cleanup [48145]:C2C9FFA730:fullname =, 发件人= LOGINNAME @ company.com ,来自= LOGINNAME @ company.com ,recip = LOGINNAME @ company.com ,优先级=,as_score = 0,as_strategy = M,代码= W,操作= FFFFFFFFFFFTFFFFFFFFFF,分析= F000FFF000TTT000F000TFT000000TTSS3000059900033-F1F-FF00000000F000FFF000000000000F1FFF000F000

其中整个粗体部分都是匹配项,但LOGINNAME可以是任意数量的随机字符。

任何帮助将不胜感激,谢谢,

就像这样:

sender=[^@]+@company\.com

(您明确地指出,只有LOGINNAME部分是可变的。)

为了测试以上所有解决方案,我个人非常喜欢使用“ Regex教练”

只是谷歌搜索该字符串和它的一个很好的服务我的免费软件。

PS:我对产品或制造它的团队没有所有权,也没有任何既得利益。

我很确定在电子邮件地址中逗号不是有效的,因此只要后面总是逗号,您应该可以通过以下方式获得它:

/(sender=[^,]+?),/

这是根据RFC2822的电子邮件地址的正则表达式

它很长,但是电子邮件地址可能比您预期的复杂。

只需在其前面加上/sender\\s*=\\s*/即可获得发件人的电子邮件。

您可以尝试以下方法:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$

但是请看这篇文章,以了解为什么RegEx和电子邮件地址有问题。

这也是添加SENDER =:

^[\w]+=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$

暂无
暂无

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

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