Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于dns日志的正则表达式_Regex_Logging_Dns - Fatal编程技术网

Regex 用于dns日志的正则表达式

Regex 用于dns日志的正则表达式,regex,logging,dns,Regex,Logging,Dns,我的DNS日志如下所示: 17/04/2017 08:59:38 09DC PACKET 000000A939E64600 UDP Rcv 10.254.30.96 c650 Q [0001 D NOERROR] A (8)master11(10)teamviewer(3)com(0) 17/04/2017 08:59:38 09DC PACKET 000000A9404FABE0 UDP Rcv 10.254.30.87 9bae Q [0001

我的DNS日志如下所示:

17/04/2017 08:59:38 09DC PACKET  000000A939E64600 UDP Rcv 10.254.30.96    c650   Q [0001   D   NOERROR] A      (8)master11(10)teamviewer(3)com(0)
17/04/2017 08:59:38 09DC PACKET  000000A9404FABE0 UDP Rcv 10.254.30.87    9bae   Q [0001   D   NOERROR] A      (7)master2(10)teamviewer(3)com(0)
17/04/2017 08:59:42 09E0 PACKET  000000A9404D15B0 UDP Rcv 10.254.35.43    fdcc   Q [0001   D   NOERROR] A      (6)mobile(4)pipe(4)aria(9)microsoft(3)com(0)
17/04/2017 09:49:45 09E8 PACKET  000000A94194FE80 UDP Rcv 8.8.8.8         646d R Q [8381   DR NXDOMAIN] A      (3)mta(3)dkf(2)com(0)
master2.teamviewer.com 
在每行的末尾,您将看到如下所示的域名:

(7)master2(10)teamviewer(3)com(0)
我只想得到以下部分:

master teamviewer com 
并将空格替换为“.”,得到如下结果:

17/04/2017 08:59:38 09DC PACKET  000000A939E64600 UDP Rcv 10.254.30.96    c650   Q [0001   D   NOERROR] A      (8)master11(10)teamviewer(3)com(0)
17/04/2017 08:59:38 09DC PACKET  000000A9404FABE0 UDP Rcv 10.254.30.87    9bae   Q [0001   D   NOERROR] A      (7)master2(10)teamviewer(3)com(0)
17/04/2017 08:59:42 09E0 PACKET  000000A9404D15B0 UDP Rcv 10.254.35.43    fdcc   Q [0001   D   NOERROR] A      (6)mobile(4)pipe(4)aria(9)microsoft(3)com(0)
17/04/2017 09:49:45 09E8 PACKET  000000A94194FE80 UDP Rcv 8.8.8.8         646d R Q [8381   DR NXDOMAIN] A      (3)mta(3)dkf(2)com(0)
master2.teamviewer.com 
为此,我使用了以下正则表达式:

(?<=\)).*?(?=\()
有人对这个问题有什么建议或解决办法吗? 谢谢你可以试试这个:

\(\d+\)(?:[\w]+\(\d+\))+

const regex=/\(\d++\)(?:[\w]+\(\d++\)++/g;
const str=`17/04/2017 08:59:38 09DC数据包000000 A939E64600 UDP Rcv 10.254.30.96 c650 Q[0001 D NOERROR]A(8)master11(10)teamviewer(3)com(0)
2017年4月17日08:59:38 09DC数据包000000 A9404FABE0 UDP Rcv 10.254.30.87 9bae Q[0001 D NOERROR]A(7)master2(10)teamviewer(3)com(0)
2017年4月17日08:59:42 09E0数据包000000 A9404D15B0 UDP Rcv 10.254.35.43 fdcc Q[0001 D NOERROR]A(6)移动(4)管道(4)aria(9)microsoft(3)com(0)
2017年4月17日09:49:45 09E8数据包000000 A94194FE80 UDP Rcv 8.8.8 646d R Q[8381 DR NXDOMAIN]A(3)mta(3)dkf(2)com(0)
`;
让m;
while((m=regex.exec(str))!==null){
console.log(m[0]。拆分(/\(\d+\)/).filter(val=>val.join(“.”);

}
您可以从以下位置使用解决方案:

这里,

  • A
    -文字
    A
  • \s+
    -1+空格
  • \(\d+\)
    -1+个数字,用
  • (.*)
    -任何0+字符,尽可能少(因为
    *?
    是惰性量词)
  • \(\d+\)(.*?\(\d+\)(.*?\(\d+\)
    -上述两个子模式的交替序列
根据需要设置捕获组选项。在上面的例子中

Format String : $1.$2.$3

不知道你在做什么。尝试替换为
s.replace(/\([^\s()]+\)(?=\s*$)/g'。)
。在那里捕获是否以特定的方式工作?尝试
\)([^()]+)\(
(在QRADAR中,而不是在regex building网站上)请检查。这是您正在使用的同一个软件吗?好吧,如果以前的regex只捕获了所有的数字,也许您需要一个与您需要的文本以外的所有文本匹配的regex?尝试
^.*\([^\s()]+\)(?=\s*$)
我将发布文章让您接受,Nop不是使用JavaScript,而是QRADAR中的JS正则表达式风格。