Читаем Программирование на языке Ruby. Идеология языка, теория и практика применения полностью

МодификаторНазначение
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.

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

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

pat1 = Regexp.compile("^foo.*") # /^foo.*/

pat2 = Regexp.compile(/bar$/i)  # /bar/ (i не переносится)

Если второй параметр задан, обычно это поразрядное объединение (ИЛИ) каких-либо из следующих констант: Regexp::EXTENDED, Regexp::IGNORECASE, Regexp::MULTILINE. При этом любое отличное от nil значение приведет к тому, что регулярное выражение не будет различать регистры; мы рекомендуем опускать второй параметр.

options = Regexp::MULTILINE || Regexp::IGNORECASE

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных