簡體   English   中英

Python不區分大小寫的替換,而不會影響重新緩存

[英]Python Case Insensitive Replace without hurting re cache

相關問題: 不區分大小寫的替換

什么是不區分大小寫的替換而不在re模塊中造成緩存的最佳方法? 我正在仔細監視緩存,以確保我最喜歡的正則表達式停留在此(速度,當然)。

我只是注意到我的代碼:

ner_token_result = re.sub('(?i)'+leftover, corrected_word, ner_token_result)

每次運行時都會重新編譯。 leftover是動態的(基於用戶輸入)。

我喜歡正則表達式(快速,我可以閱讀它們),但是我不想破壞我的緩存。

我不想使用一個不區分大小寫的字符串類...

我不希望轉換為小寫字母,替換和還原大小寫的丑陋...

請幫忙?

如果您的其他表達式是預編譯的,則意味着您執行了以下操作:

regex = re.compile(leftover, re.I)

這意味着無論緩存是否過載,您都可以引用regex 如果您沒有這樣做,請對需要在整個代碼中重復使用的那些正則表達式執行此操作。

顯然,每次leftover更改時都需要編譯動態正則表達式。 您是否擔心這會將您的其他正則表達式推出緩存?

如果是這樣,只需使用re.compile編譯您正在使用的其他正則表達式

暫無
暫無

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

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