Представленный ниже шаблон соответствует последовательности из двух букв 'А', за которыми следует буква 'В':
А\{2\}В
В результате получим "ААВ".
В следующем шаблоне задано, что буква 'А' встречается не менее четырех раз подряд:
А\{4,\)В
Возможные результаты поиска — "ААААВ" или "АААААААВ", но не "АААВ". Поиск последовательности, в которой буква 'А' встречается от двух до четырех раз, выполняется по такому шаблону:
А\{2,4\}В
Будут найдены строки "ААВ", "АААВ", "ААААВ", но не "АВ" или "АААААВ". Вернемся к уже рассматривавшемуся примеру фильтрации текстового файла, фрагмент которого представлен ниже:
1234ХС9088 4523XX90D1 0011ХА9912 9931ХС3445
Допустим, требуется найти строки, в которых первые четыре символа — цифры, за ними идут символы "XX", а затем — еще четыре цифры. Решить данную задачу позволит такой шаблон:
[0-9]\{4\}ХХ[0-9]\(4\}
Применив этот шаблон к приведенному выше фрагменту, получим:
1234ХС9088 - не соответствует
4523XX900i - соответствует
0Q11XA9912 - не соответствует
9931ХС3445 - не соответствует
7.8. Примеры
В табл. 7.2 приведен ряд дополнительных примеров использования регулярных выражений.
Таблица 7.2. Полезные регулярные выражения
^the | Соответствует строкам, которые начинаются символами "the" |
[Ss]igna[lL] | Соответствует словам "signal", "signaL", "Signal" и "SignaL" |
[Ss]igna[lL]\. | То же, что и в предыдущем случае, но слово, к тому же, должно завершаться точкой |
tty$ | Соответствует строкам, которые завершаются символами "tty" |
^USER$ | Соответствует слову "USER", которое является единственным в строке |
\. | Соответствует точке |
^d..x..x..x | Соответствует каталогам с установленным правом на выполнение для владельца, группы и других пользователей |
^[^l] | Исключает из списка файлов записи, соответствующие символическим ссыпкам |
00* | Находит строки, содержащие два или больше нулей подряд |
[lL] | Соответствует прописной и строчной букве 'l' |
[iInN] | Соответствует прописным и строчным буквам 'i' и 'n' |
^S | Соответствует пустой строке |
^.*$ | Соответствует строке, состоящей из любого числа символов |
^……$ | Соответствует строке, состоящей из шести символов |
[a‑zA‑Z] | Соответствует любой прописной или строчной букве |
[a‑z][a‑z]* | Соответствует по крайней мере одной строчной букве |
[^0-9\$] | При рассмотрении цифры и знаки доллара не учитываются |
[^0-9A‑Za‑z] | При рассмотрении не учитываются буквы и цифры |
[123] | Соответствует цифрам 1, 2 и 3 |
[Dd]evice | Соответствует словам "Device" и "device" |
De..ce | Соответствует слову, в котором первые два символа — "De", за ними идут любые два символа, а затем -cимволы "се" |
\^q | Соответствует символам "^q" |
^.$ | Соответствует строке, содержащей только один символ |
^\.[0-9][0-9] | Соответствует строке, которая начинается с точки и двух цифр |
"Device" | Соответствует слову "Device" |
De[Vv]ice\. | Соответствует слову "DeVice" или "Device", после которого стоит точка |
[0-9]\{2\}-[0-9]\ {2\}-[0-9]\{4\} | Соответствует шаблону даты в формате dd‑mm‑yyyy |
[0-9]\{3\}\.[0-9]\{3\}\ .[0-9]\{3\}\.[0-9]\{3\} | Соответствует шаблону IP–адреса в формате ппп. ппп. ппп. ппп |
7.9. Заключение