1
我有一個Python正則表達式的問題。 regxe好友的結果似乎很好,但在python中失敗。Python不清晰的正則表達式行爲
組數據我必須匹配的是一個列表:
[' 101 0. 0.\n',
' 0. 100.\n',
' 1. 98.5107805\n',
' 2. 97.0464459\n',
' 3. 95.6065328\n', ... ]
我得從第二行開始的所有號碼。 爲此我使用:
pattern = compile(r'\s*(?P<raw_time>\d*\.?\d*)\s+(?P<raw_value>\d*\.\d*)')
而且一切正常。我遍歷列表並獲取「raw_time」中的第一個值和每個行中「raw_value」中的第二個值。 然後,我應該擴大這個詞,以加工數據。
所以數據轉身:
[' 101 0. 0.\n',
' 0. 100. 1\n',
' 1. 98.5107805 1\n',
' 2. 97.0464459 1\n',
' 3. 95.6065328 1\n', ... ]
我還是隻需要分析出兩個第一參數。所以我改變了模式:
pattern = compile(r'\s*(?P<raw_time>\d*\.?\d*)\s+(?P<raw_value>\d*\.\d*).+')
它的工作原理,除了1
做工精細的所有行:
In [35]: pattern.search('1. 98.5107805 1\n').groupdict()
Out[35]: {'raw_time': '1.', 'raw_value': '98.5107805'}
工作:
In [37]: pattern.search(' 0. 100. 1\n').groupdict()
Out[37]: {'raw_time': '0.', 'raw_value': '100.'}
工作:
在[44]:patte rn.search('1。 98.5107805 \ N ')。groupdict() 輸出[44]:{' raw_time ': '1', 'RAW_VALUE':'98 0.510780'}
不工作:
In [46]: pattern.search(' 0. 100.\n').groupdict()
Out[46]: {'raw_time': '', 'raw_value': '0.'}
我在很大程度上依賴在正則表達式(當然,演示,但它符合python到現在)。
建議?
TNX
請你能清楚地顯示它不工作的輸入(就像你在工作示例中所做的那樣)。謝謝。 – NPE
已更改。我的錯誤,對不起。 – TheMeaningfulEngineer
Reggex好友不會幫助你使用Python正則表達式。你需要一個Python正則表達式測試器,如:http://ksamuel.pythonanywhere.com/ –