1

有一个像这样的绑定日志字符串

'09-Sep-2013 10:22:42.540 queries: info: client 10.12.12.66#39177: query: google.com IN AXFR -T (10.10.10.11)\n',

使用正则表达式提取日期、IP 地址和查询

re.compile("(.*?) queries.*client (.*?): query: (.*?) IN")

并获得以下输出

[('09-Sep-2013 10:22:42.540','10.12.12.66#39177','google.com')]

几乎很棒,但就是无法摆脱 IP 地址的哈希端口尾部。喜欢这个#39177。也许有人可以用正确的模式帮助我,它返回没有哈希和端口的 IP 地址。

谢谢你。

4

1 回答 1

0

试试这个(只是#\d+在IP地址保存组之后添加):

"(.*?) queries.*client (.*?)#\d+: query: (.*?) IN"

演示:

>>> s = '09-Sep-2013 10:22:42.540 queries: info: client 10.12.12.66#39177: query: google.com IN AXFR -T (10.10.10.11)\n'
>>> re.search("(.*?) queries.*client (.*?)#\d+: query: (.*?) IN", s).groups()
('09-Sep-2013 10:22:42.540', '10.12.12.66', 'google.com')
于 2013-09-12T12:22:10.497 回答