一組線需要使用不同的命名正則表達式進行解析。正在尋找實用的解決方案來優化python的文本解析速度
每行都會通過每個正則表達式直到找到匹配。 當發現匹配時,代碼應爲每行返回/ yield(命名爲regex,value)對。
文件是2GB +大小,所以我正在尋找一些提高我的解析器速度的想法。
當前代碼通過python執行,但該部分可以更改。 其中一種選擇是將所有內容都轉換爲C,以便從PCRE獲得更多速度,並且速度更快(?)IO,但這是一條很難在未來維持的緩慢路線。
我正在尋找像切實可行的解決方案:
- 轉換解析器快了一些語言
- 移動到用Cython多塊
- 分割文件,並在幾個線程 上運行(?)
不是'解析'這個詞意味着你*不能*使用正則表達式嗎?它們不適合*解析任何形式的*。 – 2011-05-28 11:18:28
不要挑剔,我需要解決的問題,如果你有更好的詞建議解釋我的問題,請建議。 – damir 2011-05-28 11:22:40
我在建議一個更好的解決方案,而不是一個更好的詞。使用任何合適的解析器生成器,編寫自己的簡單遞歸下降解析器,不管其他什麼,但不要使用正則表達式進行解析,它們不是爲此目的而設計的。如果所有圖案共享同一組可能的詞彙記號,則可以將它們用於lexing,這樣您就可以獲得線性掃描速度。 – 2011-05-28 11:26:24