Рубрики
Технологии

Пост @Uhhahh — Python (+3) — 09.06.2026 01:42

Ваш худший кошмар, или простой regex, который удивит даже опытных программистов.

re.match(r"^abc$", "abcn") # python
/^abc$/.test("abcn") // Javascript
preg_match("/^abc$/", "abcn"); // PHP

Не читайте дальше, попробуйте угадать какой вывод будет у каждого из вариантов?

False?

True ?

Правильный ответ:

False
True
False

Живите с этим 🙂

Всё дело в том, что в PCRE $ означает не «конец строки», а «конец строки, или позиция перед n в конце строки». А в ECMAScript это не так.

Лично я думал, что должно быть False, но регулярные выражения продолжают меня удивлять спустя много лет.

Правильный regex для точного совпадения с концом строки:

re.match(r"^abcZ", "abcn")
// javascript идеален, нечего исправлять :)
preg_match("/^abcp/", "abcn")

== false

Читать дальше →