簡體   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