Шрифт:
Символ каре (
Дефис внутри класса символов обозначает диапазон (в лексикографическом порядке):
Дефис в начале или в конце класса символов, а также каре в середине теряют специальный смысл и интерпретируются буквально. То же относится к левой квадратной скобке, но правая квадратная скобка, очевидно, должна экранироваться:
Регулярные выражения в Ruby могут содержать ссылки на именованные классы символов вида
Есть еще такие именованные классы:
Каре перед именем класса символов формирует его дополнение:
Для многих классов имеется также сокращенная нотация. Наиболее распространены сокращения
«Дополнительные» формы обычно записываются в виде прописной буквы:
Дополнительная информация, относящаяся только к Oniguruma, приводится в разделе 3.13.
3.9. Обобщенные регулярные выражения
Регулярные выражения, особенно длинные, часто выглядят загадочно. Модификатор
Чтобы привести несколько искусственный пример умеренно сложного регулярного выражения, предположим, что имеется такой список адресов:
Здесь каждый адрес состоит из трех частей: номер дома, название улицы и необязательный номер квартиры. Я предполагаю, что перед числом может быть необязательная строка