все Python 3до 3.15Удалено из стандартной библиотекипонятие
sre_compile / sre_constants / sre_parse
удалённые модули
Внутренние модули движка регулярных выражений. Удалены в Python 3.15 — используйте публичный модуль re.
Синтаксис
import sre_parse # до 3.15
Эти три модуля — разбор шаблона, его компиляция и таблица констант — были внутренностями re, но лежали на верхнем уровне, и к ним привыкли обращаться напрямую. В 3.11 их перенесли внутрь пакета re, оставив прежние имена заглушками с предупреждением, а в 3.15 заглушки убрали. Как переписать: sre_compile.compile(p) меняется на re.compile(p); sre_constants.error — на re.error (с 3.13 это re.PatternError); флаги вроде sre_constants.SRE_FLAG_IGNORECASE — на re.IGNORECASE. Если разбирали шаблон через sre_parse.parse, публичной замены нет: re._parser — закрытый модуль без гарантий.
Примеры
# Python 3.15+
try:
import sre_parse
except ModuleNotFoundError as e:
print(type(e).__name__) # → ModuleNotFoundError
# Python 3.15+
import re
try:
re.compile('(unclosed')
except re.error as e:
print(type(e).__name__) # → PatternError
print(bool(re.compile('abc', re.IGNORECASE).match('ABC'))) # → True
import re
import sre_constants
print(sre_constants.error is re.error) # → True
print(sre_constants.SRE_FLAG_IGNORECASE == re.IGNORECASE) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности