我想解析大約一百行的輸出。這個輸出的格式是這樣的:Python中的正則表達式幫助
<random text> STATION "STATION_NAME_ONE": <random text>
<random text> IP Address: 0.0.0.0 <random text>
<SEVERAL LINES OF RANDOM TEXT>
<random text> STATION "STATION_NAME_TWO": <random text>
<random text> IP Address: 1.1.1.1 <random text>
<SEVERAL LINES OF RANDOM TEXT>
... and so on
我知道我正在尋找的站的IP地址。使用IP地址,我試圖構造一個正則表達式來查找站名。電臺名稱可以是任意長度,可以包含任意數量的數字/字母/下劃線。電臺名稱將始終以STATION開頭,後面總是後跟冒號。 IP地址將始終位於電臺名稱後面的一行,並始終在IP地址之前。
注意有幾個站有不同的站名和IP地址。 「隨機文本」可以是任何長度,幷包含任何符號/數字/字母。
到目前爲止,我嘗試過:
re.search('(?<=STATION).*?(?=:.*IP Address: %s)' % sta_ip, output, re.DOTALL)
但顯然這將每次返回幾乎是第一個站名。
你如何製作一個正則表達式來搜索指定的站名?這可能嗎?
這個遺憾仍然會返回第一個站名,不管ip。 – 2010-07-15 00:17:19
試試我編輯的代碼,它應該像廣告中那樣工作 – Josiah 2010-07-15 00:33:22
嗯,這是工作。謝謝。 – 2010-07-15 00:41:55