[英]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.