正则表达式匹配一个组或其他组字符,双方都相同

时间:2017-11-10 16:54:40

标签: regex

我有两个不同的Windows事件日志,我想只从事件日志中捕获域名。

事件Log1:

  

hostname02.testdomain1.com MSWinEventLog

事件Log2:

  

< 46> 11月10日12:47:31 hostname01.testdomain2.com MSWinEventLog

我想匹配testdomain1.comtestdomain2.com

等域名

现在,我有这个:这个只捕获我的事件Log2但不捕获事件Log1。

[A-z]{3}[ ]{1,2}\d{1,2}\s\d{1,2}\:\d{1,2}\:\d{1,2}\s[a-zA-Z0-9]*.(\w.*)\sMS

3 个答案:

答案 0 :(得分:2)

您可以使用

\w+(?:\.\w+)+(?=\s*MSWinEventLog)

请参阅a demo on regex101.com

答案 1 :(得分:1)

意图有点不清楚,但这里有一个可能适合你的正则表达式:

[^.]+\.([\w.]+\.com)\s*MS

这与.以外的任何内容匹配,直到看到.,然后捕获域名。在此处查看此操作:https://regex101.com/r/cuAIaU/1/

答案 2 :(得分:1)

您可以使用positive lookahead

\w+\.\w+(?=\sMSWinEventLog)

匹配testdomain1.comtestdomain2.com