我正在寻找一个正则表达式来测试与字符串的匹配,例如:
mxtreme1.log:May 12 07:00:00 10.1.1.175 postfix / cleanup [48145]:C2C9FFA730:fullname =, sender = LOGINNAME @ company.com ,from = LOGINNAME @ company.com,recip = LOGINNAME @ company.com,prior =,as_score = 0,as_strategy = M,code = W,actions = FFFFFFFFFFFTFFFFFFFFFF,analysis = F000FFF000TTT000F000TFT000000TTSS3000059900033-F1F-FF00000000F000FFF000000000000F1FFF000F000
其中整个部分以粗体显示匹配,但LOGINNAME可以是任意数量的随机字符。
任何帮助将不胜感激, 谢谢,
答案 0 :(得分:2)
这就像是:
sender=[^@]+@company\.com
(您明确声明只有 LOGINNAME 部分可变。)
答案 1 :(得分:2)
为了测试上述所有解决方案,我个人喜欢使用“The Regex Coach”
只需谷歌搜索该字符串及其免费软件就可以了。
PS:我对产品或构建它的团队没有任何既得利益。
答案 2 :(得分:1)
我很确定逗号在电子邮件地址中无效,所以只要它之后总是有逗号,你应该能够得到它:
/(sender=[^,]+?),/
答案 3 :(得分:0)
答案 4 :(得分:0)
你可以试试这个:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$
但请查看this post以了解为何RegEx和电子邮件地址存在问题。
这也是添加SENDER =:
^[\w]+=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$