Одиночные символы
В регулярном выражении любой символ соответствует самому себе, если только он не является метасимволом со специальным значением (такими метасимволами являются \, |, (, ), [, {, *, +, ^, $, ? и .). В следующем примере проверяется, не ввел ли пользователь команду "quit" (и если это так, то прекращаем работу программы):
while(<>){ if(m/quit/){exit;} }
Правильнее проверить, что введенное пользователем слово "quit" не имеет со-седних слов, изменяющих смысл предложения. (Например, программа выполнит заведомо неверное действие, если вместо "quit" пользователь введет команду "Don't quit!".) Это можно сделать с помощью метасимволов ^ и $. Заодно, что-бы сравнение было нечувствительно к разнице между прописными и заглавными буквами, используем модификатор i:
while (<>) {if (m/^quit$/i) {exit;} }
Кроме обычных символов perl определяет специальные символы. Они вводятся с помощью обратной косой черты (escape-последовательности) и также могут встречаться в регулярном выражении:
- \077 - восьмеричный символ,
- \а - символ BEL (звонок),
- \с[ - управляющие символы (комбинация Ctrl + символ, в данном случае это управляющий символ ESC),
- \d - соответствует цифре,
- \D - соответствует любому символу, кроме цифры,
- \е - символ escape (ESC),
- \Е - конец действия команд \L, \U и \Q,
- \f - символ прогона страницы (FF),
- \1 - следующая литера становится строчной (lowercase),
- \L - все последующие литеры становятся строчными вплоть до командй \Е,
- \n - символ новой строки (LF, NL),
- \Q - вплоть до команды \Е все последующие метасимволы становятся обычными символами,
- \r - символ перевода каретки (CR),
- \s - соответствует любому из "пробельных символов" (пробел, вертикальная , или горизонтальная табуляция, символ новой строки и т. д.),
- \S - любой символ, кроме "пробельного",
- \t - символ горизонтальной табуляции (НТ, TAB),
- \u - следующая литера становится заглавной (uppercase),
- \U - все последующие литеры становятся заглавными вплоть до команды \E,
- \v - символ вертикальной табуляции (VT),
- \w - алфавитно-цифровой символ ( любая буква, цифра или символ подчеркивания),
- \W - любой символ, кроме букв, цифр и символа подчеркивания,
- \x1B - шестнадцатиричный символ.
Bat также можете "защитить" любой метасимвол, то есть заставить perl рассматривать его как обыкновенный символ, а не как команду, поставив перед метасимволом обратную косую черту \. Обратите внимание на символы типа \w, \d и \s, которые соответствуют не одному, а любому символу из некоторой группы. Также заметьте, что один такой символ, указанный в шаблоне, соответствует ровно одному символу проверяемой строки. Поэтому для задания шаблона, соответствующего, например, слову из букв, цифр и символов подчеркивания, надо использовать конструкцию \w+, как это сделано в следующем примере:
$text = "Here is some text." $text =~ s/\w+/There/; print $text; There is some text.