'sdt ' или 'set ', но не 'sxt', 'syt ' или 'szt ' | |
's[^x0-9]t' | s , за которым следует любой символ, кроме x или символа в диапазоне 0-9, за которым следует t , т.е. 'slt ' или 'smt ', но не 'sxt ', 's0t ' или 's4t ' |
'^x” | x в начале строки, т.е. 'xzy ' или 'xzzy ', но не 'yzy ' или 'уху ' |
'x$' | х в конце строки, т.е. 'yzx ' или 'yx ', но не 'yxz ' или 'zxy ' |
Существует большое количество второстепенных вариантов записи регулярных выражений.
1. *
— соответствует любой последовательности символов (как .* в других вариантах); ?
— соответствует любому единичному символу (как . в других вариантах); [...]
— соответствует классу символов как в других вариантах. В некоторых оболочках ({}
для выбора подстроки. Таким образом, выражение x{a,b}c
соответствует строкам xac
или xbc
, но не xc
. В некоторых оболочках выражения- маски получили дальнейшее развитие в направлении расширения регулярных выражений.
2.
3.
4.
После рассмотрения основных примеров в таблице 8.2 приведена сводка стандартных шаблонов для регулярных выражений. Следует отметить, что в таблицу не включен вариант выражений-масок, поэтому запись 'для всех' означает только 3 типа: базовый, расширенный/Emacs и Perl/Python[79].
Таблица 8.2. Введение в операции с регулярными выражениями
Символ-шаблон | Поддерживается | Соответствующая строка |
---|---|---|
| во всех | Начало escape-последовательности. Определяет, следует ли интерпретировать последующий знак как шаблон. Последующие буквы или цифры интерпретируются различными способами в зависимости от программы |
. | во всех | Любой символ |
^ | во всех | Начало строки |
$ | во всех | Конец строки |
[...] | во всех | Любой из символов, указанных в скобках |
[^...] | во всех | Любые символы, |
* | во всех | Любое количество экземпляров предыдущего элемента |
? | egrep/Emacs, Perl/Python | Ни одного или один экземпляр предыдущего элемента |