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

Need help in writing regex to capture DNS logs

下面是 DNS 示例日志,我需要在其中编写一个正则表达式来捕获主机名“Renju123”。两个样本的日志格式结构略有不同。

日志样本如下:

"2018-12-12 13:25:30","Renju, Jacob,M(renjutest)","Renju, Jacob, M (rtest),Renju123,Default Site,Test/firewall","10.221.5.136","XXX.XXX.XXX.XXX","Allowed","16 (A)","NOERROR","1XX.1X.1XX.1XX.Test.com.","Computer Security"

"2018-12-12 13:09:55","rtest","Renju123,Default Site,Renju Renju/Renju","10.250.33.85","XXX.XXX.XXX.XXX","Allowed","12 (PTR)","NOERROR","1XX.1X.1XX.1XX.Test.com.","Software/Technology"

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

(?P(?<=),).*?(?=,.?Default)) link here

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

您可能会做的(根据评论)是使用 [",]+ 匹配双引号或逗号 1 次以上,然后捕获匹配 1 个以上单词字符的组。然后是 ,Default 以便您可以再次匹配:

你的比赛将在 HostName 组。

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

Regex demo

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

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

Regex demo