Python регистр нечувствителен для замены без ущерба для повторного кэширования - PullRequest
0 голосов
/ 07 июля 2010

связанный с этим вопрос: Замена без учета регистра

Каков наилучший способ замены без учета регистра БЕЗ ВРЕМЕНИ В КЕШЕ в модуле re?Я тщательно отслеживаю кеш, чтобы убедиться, что мои любимые регулярные выражения остаются там (скорость, конечно).

Я просто замечаю, что мой код:

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

каждый раз перекомпилируетсяэто бег.leftover является динамическим (на основе пользовательского ввода).

Мне нравятся регулярные выражения (быстро, я могу их читать), но я не хочу вредить своему кешу.

Не знаюя не хочу использовать строковый класс без регистра ...

Я не хочу, чтобы уродливость конвертировалась в строчные, заменялась и восстанавливалась ... ... 1017 *

Пожалуйста, помогите?

Ответы [ 2 ]

2 голосов
/ 07 июля 2010

Очевидно, что динамическое регулярное выражение необходимо компилировать при каждом изменении leftover.Вы беспокоитесь, что это выталкивает ваши другие регулярные выражения из кэша?

Если это так, просто скомпилируйте другие используемые регулярные выражения с re.compile

2 голосов
/ 07 июля 2010

Если ваши другие выражения предварительно скомпилированы, это означает, что вы сделали что-то вроде этого:

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

Это означает, что вы сможете ссылаться на regex независимо от перегрузки кеша. Если вы этого не сделали, сделайте это для тех регулярных выражений, которые необходимо повторно использовать в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...