Программирование на языке Ruby
Шрифт:
Возможно,
Почему такое выражение не годится? Взгляните на этот пример и поймете:
Обратите внимание, что метод
3.14.4 Сопоставление с числовыми константами
Сопоставление с простым целым десятичным числом — самое простое. Число состоит из необязательного знака и последовательности цифр (правда, Ruby позволяет использовать знак подчеркивания в качестве разделителя цифр). Отметим, что первая цифра не должна быть нулем, иначе число будет интерпретироваться как восьмеричное.
Целые константы в других системах счисления обрабатываются аналогично. Образцы для шестнадцатеричных и двоичных чисел сделаны не чувствительными к регистру, так как они содержат букву:
Сопоставить число с плавающей точкой в обычной нотации несколько сложнее. Последовательности цифр по обе стороны десятичной точки необязательны, но хотя бы одна цифра должна быть:
Образец для чисел, записанных в научной нотации, основан на предыдущем:
Эти образцы могут оказаться полезны, если вы хотите убедиться, что строка содержит число, перед тем как пытаться преобразовать ее.
3.14.5 Сопоставление с датой и временем
Пусть надо выделить дату и время, записанные в формате
Но такой образец распознает
Вот как можно вызвать это регулярное выражение из метода
Разумеется, все это можно было сделать с помощью одного большого регулярного выражения:
Обратите внимание на конструкцию
3.14.6. Обнаружение повторяющихся слов в тексте
В этом разделе мы реализуем детектор повторяющихся слов. Повторение одного и того же слова два раза подряд — типичная опечатка. Следующий код распознает такие ситуации:
Обратите внимание на модификатор
Забытые Боги
3. Серые будни
Фантастика:
эпическая фантастика
фэнтези
рейтинг книги
Матабар IX
9. Матабар
Проза:
магический реализм
рейтинг книги
Гибель гигантов
1. Столетняя трилогия
Проза:
историческая проза
рейтинг книги
Том 11. Былое и думы. Часть 6-8
11. Собрание сочинений в тридцати томах
Проза:
русская классическая проза
рейтинг книги
Стрелок. Извлечение троих. Бесплодные земли
Фантастика:
фэнтези
рейтинг книги
Медная шкатулка (сборник)
Проза:
современная проза
рейтинг книги
Приручить королевича
Любовные романы:
любовно-фантастические романы
рейтинг книги
В поисках христиан и пряностей
Страницы истории
Научно-образовательная:
история
рейтинг книги
Точка Бифуркации V
5. ТБ
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Ночные бродяги
Тайны забытого острова
Детские:
детская фантастика
рейтинг книги
Спальня, в которой ты, он и я
1. Французская трилогия
Любовные романы:
эро литература
рейтинг книги
Собрание сочинений
Детские:
прочая детская литература
рейтинг книги