Регулярные выражения позволяют нам не только сопоставлять текст, но также и извлекать информацию для дальнейшей обработки. Это делается путем определения группы символов и её захвата с помощью метасимволов (
и )
. Любой подшаблон внутри круглых скобок будет захвачен в виде группы символов. На практике это можно использовать для извлечения такой информации, как телефонные номера или электронные адреса.
Например, представьте, что у вас есть инструмент командной строки для отображения всех файлов изображений, которые находятся в облаке. Затем вы можете использовать шаблон ^(IMG\d+\.png)$
для получения полного имени файлов, но если вам нужно только имя файла без его расширения, то вы можете использовать шаблон ^(IMG\d+)\.png$
, который захватывает часть текста до точки.
Попробуйте использовать полученные знания для написания регулярного выражения, которое соответствует только именам файлов .pdf, указанным ниже (не включая расширение).
Задание | Текст | Результат | |
Захватить | file_record_transcript.pdf | file_record_transcript | ![]() |
Захватить | file_07241999.pdf | file_07241999 | ![]() |
Пропустить | testfile_fake.pdf.tmp | ![]() |
Решение | Мы хотим захватывать только те названия файлов, которые начинаются с file и имеют расширение .pdf , поэтому мы можем использовать шаблон ^(file.+)\.pdf$, который захватывает всё, начиная от слова file и заканчивая частью .pdf . |