Метасимвол "$' предназначен для поиска слов или символов, находящихся в конце строки. Он указывается в конце шаблона. Предположим, требуется найти строки, заканчивающиеся словом "trouble". Эту задачу позволяет решить такой шаблон:
trouble$
Следующий шаблон соответствует пустой строке, не содержащей символов:
А с помощью показанного ниже шаблона можно найти строки, включающие только один символ:
7.4. Поиск символов, встречающихся неопределенное число раз, с помощью метасимвола '*'
Метасимвол '*' означает, что предыдущий символ в регулярном выражении либо отсутствует, либо встречается произвольное число раз подряд (1, 2 и т. д.). Например, шаблон
сотрu*t
отвечает таким словам:
computer
computing
compuuuuute
А шаблон
10133*
соответствует следующему:
101333
10133
10134
7.5. Поиск специальных символов с помощью метасимвола '\'
Ряд символов, попадая в состав регулярных выражений, приобретает специальное значение. В общем случае специальными являются следующие символы:
$ . ' " * [ ] ^ | ( ) \ + ? { }
Когда требуется найти строку, содержащую один из таких символов, его необходимо "защитить" в шаблоне с помощью обратной косой черты, которая отменяет специальное значение следующего за ней метасимвола. Предположим, строка содержит символ '.', который, как известно, в регулярном выражении соответствует произвольному символу. Вот шаблон для него:
\.
Если необходимо найти файлы, допустим, с расширением pas, можно применить следующий шаблон:
\*\.pas
7.6. Поиск символов, входящих в заданный набор или
диапазон
Шаблон [] соответствует списку или диапазону символов, указанных в квадратных скобках.
Символы в списке можно разделять запятыми. Это облегчает восприятие шаблона, хотя и не является обязательным требованием.
Для задания диапазона символов используется дефис (-). Слева от него указывается первый символ диапазона, а справа — последний. Предположим, необходимо найти символ, являющийся цифрой. Можно применить такой шаблон:
[0123456789]
Однако проще задать диапазон:
[0-9]
Следующий шаблон соответствует любой строчной букве:
[a‑z]
Чтобы найти любую букву произвольного регистра, воспользуйтесь шаблоном
[A‑Za‑z]
Здесь формируется список из двух диапазонов: прописные буквы от 'А' до 'Z' и строчные буквы от 'а' до 'z'.
Представленный ниже шаблон соответствует любому алфавитно–цифровому символу:
[A‑Za‑z0-9]
Далее показан шаблон, предназначенный для поиска трехсимвольных комбинаций следующего типа: в начале находится буква 's', за ней может следовать любая прописная или строчная буква, а завершает последовательность буква 't':
s[a‑zA‑Z]t
Если же комбинация состоит только из букв нижнего регистра, воспользуйтесь таким шаблоном:
s[a‑z]t
Чтобы найти слово "computer" независимо от того, расположено оно в начале предложения или нет, примените такой шаблон:
[Сс]omputer
Следующий шаблон соответствует слову "system", которое начинается с прописной или строчной буквы и за которым следует точка:
[S,s]ystem\.
Запятая в квадратных скобках поставлена для того, чтобы сделать шаблон удобным для зрительного восприятия.
Метасимвол '*', размещенный после квадратных скобок, указывает на то, что символы в скобках могут повторяться неопределенное число раз. Например, следующий шаблон соответствует любому слову:
[A‑Za~z]*
Метасимвол '^' после открывающей квадратной скобки — это признак того, что шаблон соответствует любым символам, кроме указанных в скобках. Так, шаблон
[^a‑zA‑Z]
соответствует всем символам, кроме букв, а шаблон отвечает всем символам, которые не являются числами.
7.7. Поиск символов, встречающихся заданное число раз
Метасимвол '*' позволяет находить символы, встречающиеся несколько раз подряд, но число повторений при этом не определяется. Если же необходимо в процессе поиска учитывать точное количество последовательных вхождений символа в строку, следует применить шаблон \{ \}. Существует четыре варианта этого шаблона:
шаблон\{n\} | Соответствует шаблону, встречающемуся ровно n раз подряд |
шаблон\(n,\} | Соответствует шаблону, встречающемуся не менее n раз подряд |
шаблон\{,m\} | Соответствует шаблону, встречающемуся не более m раз подряд |
шаблон\{n, m\} | Соответствует шаблону, встречающемуся не менее n и не более m раз подряд, где n и m — целые числа из интервала от 0 до 255 |