Книга: Программирование на языке Ruby
3.14.4 Сопоставление с числовыми константами
3.14.4 Сопоставление с числовыми константами
Сопоставление с простым целым десятичным числом — самое простое. Число состоит из необязательного знака и последовательности цифр (правда, Ruby позволяет использовать знак подчеркивания в качестве разделителя цифр). Отметим, что первая цифра не должна быть нулем, иначе число будет интерпретироваться как восьмеричное.
int_pat = /^[+-]?[1-9][d_]*$/
Целые константы в других системах счисления обрабатываются аналогично. Образцы для шестнадцатеричных и двоичных чисел сделаны не чувствительными к регистру, так как они содержат букву:
hex_pat = /^[+-]?0x[da-f_]+$/i
oct_pat = /^[+-]?0[0-7_]+$/
bin_pat = /^[+-]?0b[01_]+$/i
Сопоставить число с плавающей точкой в обычной нотации несколько сложнее. Последовательности цифр по обе стороны десятичной точки необязательны, но хотя бы одна цифра должна быть:
float_pat = /^(d[d_]*)*.[d_]*$/
Образец для чисел, записанных в научной нотации, основан на предыдущем:
sci_pat = /^(d[d_]*)?.[d_]*(e[+-]?)?(_*d[d_]*)$/i
Эти образцы могут оказаться полезны, если вы хотите убедиться, что строка содержит число, перед тем как пытаться преобразовать ее.
- 3.14.1. Сопоставление с IP-адресом
- 3.14.2. Сопоставление с парой «ключ-значение»
- 3.14.3. Сопоставление с числами, записанными римскими цифрами
- 3.14.4 Сопоставление с числовыми константами
- 3.14.5 Сопоставление с датой и временем
- 3.14.6. Обнаружение повторяющихся слов в тексте
- 3.14.7. Поиск слов, целиком набранных прописными буквами
- 3.14.8. Сопоставление с номером версии
- 3.14.9. Еще несколько образцов
- 3.14.5 Сопоставление с датой и временем
- 3.14.6. Обнаружение повторяющихся слов в тексте
- 3.14.8. Сопоставление с номером версии
- 3.14.7. Поиск слов, целиком набранных прописными буквами
- 3.14.2. Сопоставление с парой «ключ-значение»
- Эксперименты с числовыми типами данных
- 2.2. Сопоставление
- 12.7.1. Простое сопоставление с шаблоном: fnmatch()
- ПРИЛОЖЕНИЕ Б Сопоставление функций Windows, UNIX и библиотеки С
- Сопоставление с UNIX и библиотекой С
- Сопоставление строк с регулярными выражениями
- 3.2.4. Сопоставление с шаблонами