Язык программирования Python

       

Анализ записи числа


Хороший пример регулярного выражения можно найти в модуле fpformat. Это регулярное выражение позволяет разобрать запись числа (в том виде, в каком числовой литерал принято записывать в Python):

decoder = re.compile(r'^([-+]?)0*(\d*)((?:\.\d*)?)(([eE][-+]?\d+)?)$') # Следующие части числового литерала выделяются с помощью групп: # \0 - весь литерал # \1 - начальный знак или пусто # \2 - цифры слева от точки # \3 - дробная часть (пустая или начинается с точки) # \4 - показатель (пустой или начинается с 'e' или 'E')

Например:

import re decoder = re.compile(r'^([-+]?)0*(\d*)((?:\.\d*)?)((?:[eE][-+]?\d+)?)$')

print decoder.match("12.234").groups() print decoder.match("-0.23e-7").groups() print decoder.match("1e10").groups()

Получим

('', '12', '.234', '') ('-', '', '.23', 'e-7') ('', '1', '', 'e10')



Содержание раздела