Книга: Программирование на языке Ruby

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 Конец строки символов или позиция перед конечным символом новой строки
z Конец строки символов (string)
b Граница слова (только вне квадратных скобок [ ])
B Не граница слова
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.

Оглавление книги


Генерация: 1.118. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз