簡體   English   中英

[Python]:用於長字符串行的Python re.search速度優化

[英][Python]: Python re.search speed optimization for long string lines

我將問一下如何加速對python的重新研究。
我有一個很長的字符串行,長度為176861(即帶有一些符號的字母數字字符),我使用此函數測試了此行以進行re.search:

def getExecTime():
   start_time = time.time()
   re.search(r'.*^string .*=.*', temp)
   stop_time = time.time() - start_time
   print "Execution time is : %s seconds" % stop_time

平均結果是~414秒(大約6到7分鍾)。 無論如何,我可以減少這個,大約在2分鍾左右? 根據此處其他人的反饋,將此長行拆分為字符串列表不會對執行時間產生任何重大影響。 任何想法都非常感謝。 提前致謝!

re.searchre.search ,用.*開始你的模式只會意味着它總是匹配,大字符串的每個字符都可以成為候選者......你需要改進你的正則表達式,或者使用re.match而不是re.search

另外 - 你在錯誤的地方使用^我相信,它可以表示換行符的開始,(在這種情況下你需要將多行標志re.MULTILINE傳遞給編譯器/正則表達式)或者它意味着“不是”當用於字符集。

您應該將正則表達式更改為以下內容:

r'string [^=]*=.*'

這樣說,尋找單詞“string”后跟一個空格,然后任意數量的字符= then = then。 此外 - 您可能希望使用+而不是*因為*也可以表示0匹配,其中+至少需要1個字符。

但是如果沒有更多關於你的信息 - 很難說出究竟需要什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM