[英][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.search
已re.search
,用.*
開始你的模式只會意味着它總是匹配,大字符串的每個字符都可以成為候選者......你需要改進你的正則表達式,或者使用re.match
而不是re.search
。
另外 - 你在錯誤的地方使用^
我相信,它可以表示換行符的開始,(在這種情況下你需要將多行標志re.MULTILINE
傳遞給編譯器/正則表達式)或者它意味着“不是”當用於字符集。
您應該將正則表達式更改為以下內容:
r'string [^=]*=.*'
這樣說,尋找單詞“string”后跟一個空格,然后任意數量的字符=
then =
then。 此外 - 您可能希望使用+
而不是*
因為*
也可以表示0匹配,其中+
至少需要1個字符。
但是如果沒有更多關於你的信息 - 很難說出究竟需要什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.