TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5007 719
Что меняет re.prefixmatch() в Python 3.15

re.match() проверяет совпадение только в начале строки. Поэтому шаблон из шести цифр принимает и 345071-in-abbey-wood: подходящий префикс найден, а остаток не мешает успеху. Для проверки всей строки по-прежнему нужен fullmatch().

В Python 3.15 появится prefixmatch(), точный синоним match(). Поведение не изменится, зато имя прямо сообщит, что проверяется лишь начало строки. Явное лучше неявного, даже когда речь всего лишь о названии метода.

match() получит статус мягко устаревшего: предупреждений и планов удаления нет, существующий код продолжит работать. В новом коде под Python 3.15+ стоит выбирать prefixmatch() для проверки префикса, а fullmatch() для валидации значения целиком. Примеры и объяснение различий собраны в разборе Адама Джонсона.
More from @zen_of_python
  1. Sep 23, 2026Как __getitem__ превращает объект Python в итерируемый Для цикла for объекту не всегда нуж…
  2. Sep 23, 2026Pyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая пуб…
  3. Sep 22, 2026Как применять структурное сопоставление с образцом к деревьям в Python Структурное сопоста…
  4. Sep 22, 2026Почему в Python стоит подменять свой интерфейс, а не httpx Если бизнес-тест напрямую подме…
  5. Sep 22, 2026Как точно типизировать *args и **kwargs в Python Запись *args: tuple[int, str] выглядит ка…
  6. Sep 21, 2026Как точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медлен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →