在编写正则表达式以捕获DNS日志时需要帮助

时间:2018-12-12 13:59:24

标签: regex cisco umbrella

下面是DNS样本日志,我需要编写一个正则表达式来捕获主机名“ Renju123 ”。两种样本的日志格式结构几乎没有什么不同。

日志示例如下:

“ 2018-12-12 13:25:30”,“ Renju,Jacob,M(renjutest)”,“ Renju,Jacob,M(rtest),Renju123,默认站点,测试/防火墙”,“ 10.221。 5.136“,” XXX.XXX.XXX.XXX“,”允许“,” 16(A)“,” NOERROR“,” 1XX.1X.1XX.1XX.Test.com。“,”计算机安全“

“ 2018-12-12 13:09:55”,“ rtest”,“ Renju123,默认站点,Renju Renju / Renju”,“ 10.250.33.85”,“ XXX.XXX.XXX.XXX”,“允许“,” 12(PTR)“,” NOERROR“,” 1XX.1X.1XX.1XX.Test.com。“,”软件/技术“

我使用的正则表达式仅捕获第一个日志主机名

  

(?P(?<=),)。*?(?= ,.?默认))link here

但是我想有一个正则表达式来从两个示例日志中捕获主机名(Renju123)

1 个答案:

答案 0 :(得分:1)

您可能要做的(根据注释)是使用[",]+匹配双引号或逗号1+次,然后捕获匹配1+个单词字符的组。然后,Default跟随着您,以便您可以再次进行匹配:

您的比赛将在HostName组中。

[",]+(?P<HostName>\w+),Default

Regex demo

如果主机名以单词字符开头,则可以使用环视和单词边界\b

(?<=[,"])\b(?P<HostName>\w+)(?=,Default)

Regex demo