我試圖解析看起來像下面的輸出。解釋正則表達式
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