| Символ-шаблон | Поддерживается | Соответствующая строка |
|---|---|---|
\ | во всех | Начало escape-последовательности. Определяет, следует ли интерпретировать последующий знак как шаблон. Последующие буквы или цифры интерпретируются различными способами в зависимости от программы |
. | во всех | Любой символ |
^ | во всех | Начало строки |
$ | во всех | Конец строки |
[...] | во всех | Любой из символов, указанных в скобках |
[^...] | во всех | Любые символы, |
* | во всех | Любое количество экземпляров предыдущего элемента |
? | egrep/Emacs, Perl/Python | Ни одного или один экземпляр предыдущего элемента |
+ | egrep/Emacs, Perl/Python | Один или несколько экземпляров предыдущего элемента |
{n} | egrep, Perl/Python; как \{n\} в Emacs | В точности n повторений предыдущего элемента. Не поддерживается некоторыми старыми regexp-средствами |
{n,} | egrep, Perl/Python; как \{n,\} в Emacs | n или более повторений предыдущего элемента. Не поддерживается некоторыми старыми regexp-средствами |
{m,n} | egrep, Perl/Python; как \{m,n\} в Emacs | Минимум m и максимум n повторений предыдущего элемента. Не поддерживается некоторыми старыми regexp-средствами |
| | | egrep, Perl/Python; как \| в Emacs | Элемент слева или справа. Обычно используется с некоторой формой группирующих разделителей |
(...) | Perl/Python; как \(...\) в более старых версиях | Интерпретировать данный шаблон как группу (в более новых regexp-функциях, например в языках Perl и Python). Более старые средства, такие как regexp-функции в Emacs и в утилите grep требуют записи \(...\) |
В новых языках с поддержкой регулярных выражений установилась практика Perl/Python-варианта. Он является более прозрачным, чем остальные, особенно потому, что обратная косая черта перед не алфавитно-цифровым символом всегда означает, что данный символ трактуется буквально, что значительно устраняет путаницу при ссылке на элементы регулярных выражений.
Регулярные выражения являются исключительным примером того, насколько лаконичным может быть мини-язык. Простые регулярные выражения отражают режим распознавания, который иначе пришлось бы реализовывать с помощью сотен строк туманного, чреватого ошибками кода.
8.2.3. Учебный пример: Glade
XML-формат