"\", ".", "^", "$", "|", "[", "]", "(", ")", "*", "+", "?", "{", "}"
/^$/ — пустая строка (начало и конец, между которыми пусто); /^Perl/ — слово Perl в начале строки; /Perl$/ — слово Perl в конце строки.
r* — нуль и более повторений r; r+ — одно и более повторений r; r? — нуль или одно повторение r; r{n} — ровно n повторений r; r{n,} — n и более повторений r; r{n,m} — минимум n, максимум m повторений r.
/.*/ — любая строка; /.+/ - любая непустая строка; /[0-9]{3}/ — любая последовательность из трех цифр; /\[+/ — последовательность, состоящая из любого числа символов [.
для образца /\d*/ — максимальный фрагмент "1234567"; для образца /\d+/ — максимальный фрагмент "1234567"; для образца/\d?/ — максимальный фрагмент "1"; для образца /\d{2,5}/ — максимальный фрагмент "12345"; для образца /\d*?/ — минимальный фрагмент ""; для образца /\d+?/ — минимальный фрагмент "1"; для образца /\d??/ — минимальный фрагмент ""; для образца /\d{2,5}?/ — минимальный фрагмент "12".
$str =~ s/(\S+)\s+(\S+)/$2 $1/меняет местами первые два слова в строке $str.
$str =~ m/two/в строке $str = "one two three" образца /two/ будут присвоены следующие значения переменным:
$str = "aaabbbcccddd";
$str =~ m/b+(?=c+)/;будут сохранены следующие значения в специальных переменных:
S` - ааа, $& - bbb, $' — cccddd.
S` — ааа, $&- bbbccc, $' - ddd.
$str =~ m/b+(?!с+)/;в рассмотренной выше строке $str будет зафиксирован в следующих значениях специальных переменных:
S` — ааа, S& - bb, $' — bcccddd.
$str =~ m/(?<=b)b+/;значения специальных переменных будут распределены следующим образом:
S` — ааа, $& — bb, $' — cccddd.
$str =~ m/(?<!b)c+/;специальные переменные получат следующие значения:
$` — aaabbbc, $& - сс, $' - ddd.
/(?ix) perl # игнорирование регистра при поиске/
Метасимвол | Интерпретация |
---|---|
\ | Отменяет (экранирует) специальное значение следующего за ним метасимвола |
. | Любой одиночный символ, кроме символа новой строки. Любой одиночный символ, включая символ новой строки, если в операции сопоставления с образцом задан флаг s |
^ | Обозначает начало строки, если является первым символом образца |
$ | Обозначает коней строки, если является последним символом образца |
| | Разделяет альтернативные варианты |
[...] | Любой одиночный символ из числа перечисленных в квадратных скобках. Пара символов, разделенных знаком минус, задает диапазон символов. Например, [A-Za-z] задает все прописные и строчные буквы английского алфавита. Если первым символом в скобках является символ ^, вся конструкция обозначает любой символ, не входящий в число перечисленных в скобках. Внутри скобок символы . * [ и \ теряют свое специальное значение. |
(...) | Группирование элементов образца в один элемент |
* | Нуль и более повторений регулярного выражения, стоящего непосредственно перед * |
+ | Одно или более повторений регулярного выражения, стоящего Непосредственно перед + |
? | Одно или ни одного повторения регулярного выражения, стоящего непосредственно перед ? |
{n, m} | Минимальное n и максимальное m число повторений регулярного выражения, стоящего перед {n, m}. Конструкция {n} означает ровно n повторений, {n,} — минимум n повторений |
Метапоследовательность | Значение |
---|---|
\0nn | Символ, восьмеричный код которого равен nn |
\а | При выводе производит звуковой сигнал |
\А | Обозначает начало строки |
\b | Обозначает границы слова. Под словом понимается последовательность символов из класса \w. Граница слова определяется как точка между символами из класса \w и символами из класса \W |
\B | Обозначает не-границы слова |
\cn | Управляющий символ, который генерируется при нажатии комбинации клавиш Ctrl+n |
\d | Любой цифровой символ, то же, что и [0-9] |
\D | Любой нецифровой символ, то же, что и [^0-9] |
\е | Символ Esc, ASCII 27 |
\E | Ограничитель последовательностей \L, \U, \Q |
\f | Символ перевода страницы, ASCII 12 |
\G | Обозначает точку, в которой закончился предыдущий поиск m//g |
\l | Преобразует следующий символ регулярного выражения в нижний регистр |
\L | Преобразует все последующие символы в регулярном выражении в нижний регистр до тех пор, пока не встретится последовательность \Е |
\n | Символ новой строки, ASCII 10 |
\Q | Эквивалентно экранированию всех последующих метасимволов в регулярном выражении при помощи символа \ до тех пор, пока не встретится последовательность \Е |
\r | Символ «возврат каретки», ASCII 13 |
\s | Класс пробельных символов: пробел (space), символ табуляции (tab), возврат каретки (carriage return), символ перевода строки (line feed) и символ перевода страницы (form feed); эквивалентно [\t,\r,\n,\f] |
\S | Класс непробельных символов |
\t | Символ табуляции, ASCII 9 |
\u | Преобразует следующий символ в верхний регистр |
\U | Преобразует все последующие символы в регулярном выражении в верхний регистр до тех пор, пока не встретится последовательность \Е |
\v | Символ вертикальной табуляции, ASCII 11 |
\w | Любая буква, цифра или символ подчеркивания |
\W | Любой символ, не являющийся буквой, цифрой или символом подчеркивания |
\xnn | Символ, шестнадцатеричный код которого равен nn |
\Z | Обозначает конец строки |
Следующая страница | Содержание главы |
2011-04-07 13:23:56 Вова Отлично! Спасибо 2011-07-18 06:15:34 Троль БАян, везде такое пишут, ничо нового!!! Трололо!!! 2011-08-26 19:25:52 alisk0 Спасибо помогло 2011-12-27 04:31:59 дядя Миша Очень полезно. А можно переменные внутрь регэкспов вставлять? (обращаться к переменным по имени изнутри регэкспа) 2012-01-03 19:08:20 ulot3049 Нормальный справочник по регуляркам получился, но нету информации о практическом применении. Вот статья с примерами: http://lifeexample.ru/php-primeryi-skriptov/regulyarnyie-vyirazheniya-v-php.html может кому поможет в изучении 2012-01-04 20:12:48 Вячеслав Ничего и не баян, и не везде. Кое-что нужное нашел! А везде студенты размещают криво распознанные книги, и ошибки не исправляют. А тут все разжевали вам! Оставить комментарий: |