Тренажёр: функции модуля re
Регулярка — это только шаблон. А вот что с ней делать, решают функции модуля: искать первое совпадение, все совпадения, проверять целиком, заменять, резать по шаблону. Начинающие часто путают search и match, не понимают, чем findall отличается от finditer. Этот тренажёр позволяет увидеть разницу собственными глазами: задайте шаблон и текст, а затем переключайтесь между функциями — всё остальное подстроится автоматически.
Как работает проверка. Тренажёр использует JavaScript-движок регулярок — он почти совпадает с Python-ным. Синтаксис именованных групп (?P<name>...) автоматически переводится в (?<name>...), а в строке замены \1 и \g<name> — в соответствующие JS-эквиваленты. Пишите шаблоны по-питоновски.
Шаблон, текст и функция
шаблон
текст
замена
Введите шаблон и текст — увидите результат.
Подсветка в тексте
совпадение
Готовые примеры
Нажмите на пример — шаблон, текст и функция подставятся автоматически.
Шпаргалка по функциям
Возвращают Match или None:
search(p, s) — первое совпадение где угодно в строке.
match(p, s) — совпадение в начале строки (но не обязательно до конца).
fullmatch(p, s) — шаблон должен накрыть всю строку. Удобно для валидации.
Возвращают коллекцию совпадений:
findall(p, s) — список. Без групп — список строк. С одной группой — список строк из этой группы. С двумя и более — список кортежей.
finditer(p, s) — итератор Match-объектов. Для каждого можно узнать .group(), .span(), группы. Используется, когда нужны позиции в тексте.
Преобразуют текст:
sub(p, repl, s) — заменяет все совпадения. В repl работают обратные ссылки \1, \g<name>. Вместо строки можно передать функцию.
split(p, s) — режет строку по шаблону. Если в шаблоне есть группы — содержимое групп попадает в результат между кусками.