Need help in writing regex to capture DNS logs

100 Views Asked by At

Below are the DNS Sample logs where i need to write a regex to capture the Hostname "Renju123". The log format structure is little different on both samples.

The log samples are given below:

"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"

The regex which i used is only capturing the first log hostname

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

But i would like to have a single regex to capture HostNames (Renju123) from both the sample logs

1

There are 1 best solutions below

8
The fourth bird On BEST ANSWER

What you might do (according to the comments) is match a double quote or a comma 1+ times using [",]+ and then capture in a group matching 1+ word characters. Then ,Default follows so that you could match again:

Your match will be in the HostName group.

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

Regex demo

If your hostname starts with a word character, you could use lookarounds and a word boundary \b

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

Regex demo