我试图解析看起来像下面的输出。解释正则表达式
1 192.168.1.1 0.706 ms 0.654 ms 0.697 ms
2 10.10.10.10 4.215 ms 4.199 ms 4.175 ms
3 123.123.123.123 4.000 ms * *
我有正常的表达式工作,如下所示。
此正则表达式的工作原理:
re.compile(r'^\s*(\d+)\s+?([\s\S]+?(?=^\s*\d+\s+))', re.M)
这将正确采集的每一行。
('1', ' 192.168.7.1 0.706 ms 0.654 ms 0.697 ms\n')
('2', ' 10.10.10.10 4.215 ms 4.199 ms 4.175 ms\n')
('3', ' 123.123.123.123 4.000 ms * *\n')
我的问题是大胆的?是否在(?=^\ s * \ d + \ s +)之前
即将正则表达式更改为如下所示。
这个正则表达式不起作用。唯一的区别是?标记已删除。
re.compile(r'^\s*(\d+)\s+?([\s\S]+(?=^\s*\d+\s+))', re.M)
我试过这个,它不起作用。它不会分别解析每条线。
任何人都可以帮我解释这个正则表达式吗?
非常感谢! – sh0731