Время выполнить re.sub ⇐ Python
-
Гость
Время выполнить re.sub
Я пытаюсь сделать замену в огромном текстовом файле, используя такие регулярные выражения:
repeatedPtn_1=r'[^{}]*(?:{{[^{}]*}})*[^{}]*' повторенныйPtn_2=r'[^{}]*(?:{{[^{}]*}})*[^{}]*(?:{{[^{}]*}})*[^{} ]*' шаблон=r'{{\s* RQ:'+repeatedPtn_1+r'(?:passage|text|quote)\s*=('+repeatedPtn_1+r')}}' out_text=re.sub(шаблон, r'{{quote-Temple:\1}}', out_text, flags=re.DOTALL|re.IGNORECASE) Поэтому, если я использую repeatedPtn_1 в своем шаблоне, я получаю результаты менее чем за 10 минут, но если я использую repeatedPtn_2, который мне больше всего подходит, мой ноутбук продолжает работать часами, не заканчивая!
Может кто-нибудь объяснить мне почему и помочь найти решение?
Я пытаюсь сделать замену в огромном текстовом файле, используя такие регулярные выражения:
repeatedPtn_1=r'[^{}]*(?:{{[^{}]*}})*[^{}]*' повторенныйPtn_2=r'[^{}]*(?:{{[^{}]*}})*[^{}]*(?:{{[^{}]*}})*[^{} ]*' шаблон=r'{{\s* RQ:'+repeatedPtn_1+r'(?:passage|text|quote)\s*=('+repeatedPtn_1+r')}}' out_text=re.sub(шаблон, r'{{quote-Temple:\1}}', out_text, flags=re.DOTALL|re.IGNORECASE) Поэтому, если я использую repeatedPtn_1 в своем шаблоне, я получаю результаты менее чем за 10 минут, но если я использую repeatedPtn_2, который мне больше всего подходит, мой ноутбук продолжает работать часами, не заканчивая!
Может кто-нибудь объяснить мне почему и помочь найти решение?