所以我有這個命名righthops.txt文本文件,其中包含了一堆線,所有看起來像:蟒紋與正則表達式匹配
12 engrish.net (216.70.106.32) 19.491 ms 22.252 ms 22.147 ms
12 engrish.net (216.70.106.32) 15.214 ms 19.502 ms 37.143 ms
12 engrish.net (216.70.106.32) 15.832 ms 15.804 ms 15.738 ms
所以我有這樣的代碼打開的文本文件,並讀取它。然後我試圖使用正則表達式的findall命令只提取每行中的最後一個時間延遲(22.147,37.143,15.738)。我不想太複雜,所以我打算進行模式匹配,以便在每行中得到最後兩個時間延遲,然後我可以使用for循環將列表中的其他元素接收到新列表中只有最後一次延遲。
要做到這一點,我試圖讓模式採取任何數字之後的'毫秒'理論上會在每行最後兩個時間延遲,但由於某種原因我的代碼(如下所示)沒有采取在任何事情中。任何幫助將不勝感激!
hops = open('righthops.txt')
righthops = hops.read()
alldelays = re.findall(r'ms (\d+\.\d+)', righthops)
看起來像列之間不止一個空格。 – Biffen
爲什麼你不重複每行一行,匹配'\ d + \。\ d +(?= \ s * ms \ s * $)'並且用它做任何你喜歡的事情? –