Программирование на языке Ruby
Шрифт:
Впрочем, я немного уклонился от истины. Эти якоря на самом деле соответствуют началу и концу не строки символов (string), а строки текста (line). Вот что произойдет, если те же самые образцы применить к строке, внутри которой есть символы новой строки:
Однако имеются якоря
Якорь
Можно также устанавливать соответствие на границе слова с помощью якоря
He существует способа отличить начало слова от конца.
3.5. Кванторы
Немалая часть аппарата регулярных выражений связана с обработкой необязательных элементов и повторений. Элемент, за которым следует вопросительный знак, необязателен; он может присутствовать или отсутствовать, а общее соответствие зависит от прочих частей регулярного выражения. (Этот квантор имеет смысл применять только к подвыражению ненулевой длины, но не к якорям.)
Элементы часто повторяются неопределенное число раз (для формулировки этого условия служит квантор
Еще один типичный случай — образец, повторяющийся нуль или более раз. Конечно, это условие можно выразить с помощью кванторов
Но есть и способ лучше. Требуемое поведение описывается квантором
Как распознать американский номер социального страхования? С помощью такого образца:
Но это не вполне понятно. Лучше явно сказать, сколько цифр должно быть в каждой группе. Это можно сделать, указав число повторений в фигурных скобках:
Необязательно, что такой образец будет короче, но он более понятен читателю программы.
Можно также использовать диапазоны, границы которых разделены запятой. Предположим, что номер телефона в Элбонии состоит из двух частей: в первой может быть от трех до пяти цифр, а во второй — от трех до семи. Вот как выглядит соответствующий образец:
Нижняя и верхняя границы диапазона необязательны (но хотя бы одна должна быть задана):
Ясно, что кванторы
Остров Крым
Фантастика:
социально-философская фантастика
альтернативная история
рейтинг книги
Русский романс
Поэзия:
песенная поэзия
лирика
рейтинг книги
Изгнание
Проза:
проза прочее
рейтинг книги
Газлайтер. Том 38
38. История Телепата
Фантастика:
городское фэнтези
аниме
попаданцы
рейтинг книги
Неучтенный элемент. Том 11
11. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
"Охотник". Компиляция. Книги 1-12
Собрание сочинений
Фантастика:
боевая фантастика
рейтинг книги
Приказано выжить!
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
рейтинг книги
Враг Короны
10. Сварог
Фантастика:
героическая фантастика
рейтинг книги
Три Меченосца. Книга первая. Желтая сталь алфейнов
Хроники Гэмдровса
Фантастика:
фэнтези
эпическая фантастика
героическая фантастика
боевая фантастика
рейтинг книги
Исторический материализм
Научно-образовательная:
история
философия
политика
рейтинг книги
Стеллар. Компиляция. Книги 1-9
Стеллар
Фантастика:
киберпанк
рпг
постапокалипсис
технофэнтези
рейтинг книги
Последний реанорец. Том IV
3. Высшая Речь
Фантастика:
фэнтези
рейтинг книги
Вавилонская башня
2. Кудеяр
Фантастика:
боевая фантастика
рейтинг книги
Из 'Автобиографии'
Научно-образовательная:
история
рейтинг книги