Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[98.84.18.52] |
|
Сообщ.
#1
,
|
|
|
Всем привет! Имею следующее выражение для проверки дробного числа:
/^(?:0|[1-9]\d?)(?:\.\d{1,2})?$/ Нужно чтобы не захватывало 0.0 и 0.00. Пока не могу придумать как реализовать, нужна ваша помощь. Спасибо! |
Сообщ.
#2
,
|
|
|
Цитата Нужно чтобы не захватывало 0.0 и 0.00. Вроде бы, в регвыре для разбора email есть нужный кусок. |
Сообщ.
#3
,
|
|
|
(?:\d*[1-9]\d*\.\d{1,2}|0+\.(?:0[1-9]|[1-9]\d?)) логика: либо {,} цифр, 1 из которых (любая) не ноль - до точки, и 1-2 цифры (любые) после точки либо {1,} нулей до точки, и 0 и не-ноль после точки, либо (не-ноль и (любая цифра, включая ноль, или пустота)) после точки >>> re.findall(r'\b(?:\d*[1-9]\d*\.\d{1,2}|0+\.(?:0[1-9]|[1-9]\d?))\b', ... ' 1.2 10.2 10.02 10.0 0.10 0.0 0.00 0.05 00.00 01.02 1000.23 00.0 123.45 00.12') ['1.2', '10.2', '10.02', '10.0', '0.10', '0.05', '01.02', '1000.23', '123.45', '00.12'] Добавлено Цитата AVA12 @ Вроде бы, в регвыре для разбора email есть нужный кусок. оО это шутка такая? проще самому написать чем читать ЭТО. |