首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:多个捕获组--搜索和替换- DNS日志

Regex:多个捕获组--搜索和替换- DNS日志
EN

Stack Overflow用户
提问于 2014-08-21 16:43:33
回答 1查看 133关注 0票数 0

在横梁上颠簸,需要一只手。基本上,我有DNS日志,如下所示:

代码语言:javascript
复制
8/21/2014 9:32:20 AM 0E5C PACKET  000000298F0CA280 UDP Rcv 10.2.56.13      136b   Q [0001   D   NOERROR] PTR    (2)25(2)21(1)5(2)10(7)in-addr(4)arpa(0)
8/21/2014 9:32:20 AM 0E60 PACKET  000000298EE81DF0 UDP Rcv 10.2.4.60       7d30   Q [0001   D   NOERROR] A      (14)usca-cdst-sw01(3)domain(3)com(0)
8/21/2014 9:32:20 AM 0E60 PACKET  00000029936FBF70 UDP Rcv 10.2.4.60       ce83   Q [0001   D   NOERROR] A      (14)usca-edge-sw01(3)domain(3)com(0)
8/21/2014 9:32:20 AM 0E60 PACKET  0000002990241FD0 UDP Rcv 10.2.4.60       1753   Q [0001   D   NOERROR] A      (14)usca-edge-sw02(3)domain(3)com(0)
8/21/2014 9:32:20 AM 0E60 PACKET  000000298EE81DF0 UDP Rcv 10.2.4.60       14b1   Q [0001   D   NOERROR] A      (14)ussp-usrv-rt01(3)domain(3)com(0)
8/21/2014 9:32:20 AM 0E60 PACKET  00000029936FBF70 UDP Rcv 10.2.4.60       db29   Q [0001   D   NOERROR] A      (14)usxo-core-vg02(3)domain(3)com(0)
8/21/2014 9:32:20 AM 0E60 PACKET  0000002990241FD0 UDP Rcv 10.2.29.29      3987   Q [0001   D   NOERROR] PTR    (3)247(1)4(1)5(2)10(7)in-addr(4)arpa(0)
8/21/2014 9:32:20 AM 0E60 PACKET  0000002990241FD0 UDP Rcv 10.2.29.29      0abd   Q [0001   D   NOERROR] PTR    (3)219(2)14(1)1(2)10(7)in-addr(4)arpa(0)
8/21/2014 9:32:20 AM 0E60 PACKET  000000298EE81DF0 UDP Rcv 10.2.4.60       42b1   Q [0001   D   NOERROR] A      (14)brca-rvrb-wo01(3)bru(3)domain(3)com(0)

在每个事件结束时,您将看到“(14)ussp-usrv-rt01 01(3)domain(3)com(0)”。

基本上,我正在编写regex,将其转换为"ussp-usrv-rt01.domain.com“。

我的策略是将NOERROR之后的所有内容都捕获到行尾,然后用句点替换括号。把球弄得恰到好处。

有什么建议吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 16:47:56

考虑到您的主机名有多种格式(主机名、reversePTR名称等)你最好分两个阶段去做:

代码语言:javascript
复制
/\s(\(.*\))$/

要捕获(3)216....arpa(0)内容,您可以使用

代码语言:javascript
复制
implode('.' , preg_split('|\(\d+\)|', ...))

爆炸单个(数字)位,然后与.重新组合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25431596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档