3.1. Синтаксис регулярных выражений

3.1. Синтаксис регулярных выражений

Обычно регулярное выражение ограничено с двух сторон символами косой черты. Применяется также форма %r. В таблице 3.1 приведены примеры простых регулярных выражений:

Таблица 3.1. Простые регулярные выражения

Регулярное выражение Пояснение
/Ruby/ Соответствует одному слову Ruby
/[Rr]uby/ Соответствует Ruby или ruby
/^abc/ Соответствует abc в начале строки
%r(xyz$) Соответствует xyz в конце строки
%r|[0-9]*| Соответствует любой последовательности из нуля или более цифр

Сразу после регулярного выражения можно поместить однобуквенный модификатор. В таблице 3.2 приведены наиболее часто употребляемые модификаторы.

Таблица 3.2. Модификаторы регулярных выражений

Модификатор Назначение
I Игнорировать регистр
O Выполнять подстановку выражения только один раз
M Многострочный режим (точка сопоставляется с символом новой строки)
X Обобщенное регулярное выражение (допускаются пробелы и комментарии)

Дополнительные примеры будут рассмотрены в главе 4. Чтобы завершить введение в регулярные выражение, в таблице 3.3 мы приводим наиболее употребительные символы и обозначения.

Таблица 3.3. Общеупотребительные обозначения в регулярных выражениях

Обозначение Пояснение
^ Начало строки текста (line) или строки символов (string)
$ Конец строки текста или строки символов
. Любой символ, кроме символа новой строки (если не установлен многострочный режим)
w Символ - часть слова (цифра, буква или знак подчеркивания)
W Символ, не являющийся частью слова
s Пропуск (пробел, знак табуляции, символ новой строки и т.д.)
S Символ, не являющийся пропуском
d Цифра (то же, что [0-9])
D Не цифра
A Начало строки символов (string)
 Конец строки символов или позиция перед конечным символом новой строки
z Конец строки символов (string)
 Граница слова (только вне квадратных скобок [ ])
B Не граница слова
 Забой (только внутри квадратных скобок [ ])
[] Произвольный набор символов
* 0 или более повторений предыдущего подвыражения
*? 0 или более повторений предыдущего подвыражения (нежадный алгоритм)
+ 1 или более повторений предыдущего подвыражения
+? 1 или более повторений предыдущего подвыражения (нежадный алгоритм)
{m, n} От m до n вхождений предыдущего подвыражения
{m, n}? От m до n вхождений предыдущего подвыражения (нежадный алгоритм)
? 0 или 1 повторений предыдущего подвыражения
| Альтернативы
(?= ) Позитивное заглядывание вперед
(?! ) Негативное заглядывание вперед
() Группировка подвыражений
(?> ) Вложенное подвыражение
(?: ) Несохраняющая группировка подвыражений
(?imx-imx) Включить/выключить режимы, начиная с этого места
(?imx-imx: expr) Включить/выключить режимы для этого выражения
(?# ) Комментарий

Умение работать с регулярными выражениями — большой плюс для современного программиста. Полное рассмотрение этой темы выходит далеко за рамки настоящей книги, но, если вам интересно, можете обратиться к книге Jeffrey Friedl, Mastering Regular Expressions[8].

Дополнительный материал вы также найдете в разделе 3.13.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Синтаксический анализ выражений 

Из книги автора

Синтаксический анализ выражений  Начало Если вы прочитали введение, то вы уже в курсе дела. Вы также скопировали программу Cradle в Turbo Pascal и откомпилировали ее. Итак, вы готовы.Целью этой главы является обучение синтаксическому анализу и трансляции математических


Использование контроллеров и выражений

Из книги автора

Использование контроллеров и выражений Каждый раз, когда вы анимируете объекты сцены, программа 3ds Max сохраняет параметры анимации в контроллерах. Контроллерами называются элементы, хранящие значения анимации и управляющие интерполяций от одного значения анимации к


Добавление контролируемых выражений

Из книги автора

Добавление контролируемых выражений Если вы любите свободу выбора, вам обязательно понравится иметь дело с окном Watches. Приготовьтесь удивиться тому, сколько есть разных способов добавления контролируемых выражений в это окно.Правда, независимо от выбранного в конце


2.21. Включение выражений в строку

Из книги автора

2.21. Включение выражений в строку Это легко позволяет сделать синтаксическая конструкция #{}. Нет нужды думать о преобразовании, добавлении и конкатенации; нужно лишь интерполировать переменную или другое выражение в любое место строки:puts "#{temp_f} по Фаренгейту равно #{temp_c}


3.2. Компиляция регулярных выражений

Из книги автора

3.2. Компиляция регулярных выражений Для компиляции регулярных выражений предназначен метод Regexp.compile (синоним Regexp.new). Первый параметр обязателен, он может быть строкой или регулярным выражением. (Отметим, что если этот параметр является регулярным выражением с


3.13.7. Рекурсия в регулярных выражениях

Из книги автора

3.13.7. Рекурсия в регулярных выражениях Возможность повторно обращаться к подвыражению позволяет создавать рекурсивные регулярные выражения. Например, данный код находит любое вложенное выражение с правильно расставленными скобками (спасибо Эндрю Джексону):str = "а *


3.14. Примеры регулярных выражений

Из книги автора

3.14. Примеры регулярных выражений В этом разделе мы приведем краткий перечень регулярных выражений, которые могут оказаться полезны на практике или просто послужат учебными примерами. Для простоты примеров ни одно выражение не зависит от наличия


Использование регулярных выражений

Из книги автора

Использование регулярных выражений Существует три этапа использования регулярного выражения. На первом регулярное выражение разбивается на составляющие его лексемы, на втором они преобразуются форму, пригодную для установки соответствия (компиляция регулярного


Виды выражений

Из книги автора

Виды выражений Выражения языка XPath можно условно разделить на несколько основных типов:? пути выборки;? выражения фильтрации множеств;? выражения объединения множеств;? сравнения;? логические операции;? вызовы функций.Рассмотрим подробно назначение и принципы работы


Контекст вычисления выражений

Из книги автора

Контекст вычисления выражений Выражения всегда вычисляются в некотором контексте — окружении, которое зависит от того, какая часть документа обрабатывается XSLT-процессором в данный момент, и какие объявления присутствовали в самом преобразовании.Контекст


§ 4.5 Использование регулярных выражений

Из книги автора

§ 4.5 Использование регулярных выражений Функции поиска и замены в FB Editor предусматривают использование регулярных выражений (Regular Expressions, RegExp).Регулярные выражения представляют собой квазиязык, объединяющий набор шаблонов и подстановок, используемых при поиске и замене