Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Таблица 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].