[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка и диапазон чисел
taka
Подскажите пожалуйста как составить регулярное выражение, чтоб находились числа только в диапазоне от 0 (также 00,01,02,...0.9) до 59 ????????????



Спустя 10 минут, 1 секунда (27.01.2011 - 22:19) Invis1ble написал(а):
#\D([0-5]\d\.\d*?|\d\.\d*?|[0-5]\d|\d)\D#
как-то так smile.gif

Спустя 26 минут, 35 секунд (27.01.2011 - 22:45) dima4321 написал(а):
Зачем так сложно Invis1ble ??))


[0-5]\.?[0-9]

Спустя 4 минуты, 9 секунд (27.01.2011 - 22:49) Dron19 написал(а):
ага smile.gif посмотри что она у тебя пропустит biggrin.gif только от нуля до пяти с дробной части до 9 и все smile.gif

Спустя 6 минут, 36 секунд (27.01.2011 - 22:56) Dron19 написал(а):
здесь не нужна регулярка, простыми условиями if это выполнить гораздо легче и не нагружать скрипт

Спустя 1 минута, 50 секунд (27.01.2011 - 22:58) Invis1ble написал(а):
Dron19
Цитата
здесь не нужна регулярка, простыми условиями if это выполнить гораздо легче и не нагружать скрипт

а если нужно из текста достать числа, удовлетворяющие поставленным условиям?

Спустя 19 секунд (27.01.2011 - 22:58) Dron19 написал(а):

$num = 59;

if($text <= 59) {

echo "Проходи";

}

:D

Спустя 55 секунд (27.01.2011 - 22:59) Dron19 написал(а):
Invis1ble, тогда другой разговор smile.gif

Спустя 9 минут, 9 секунд (27.01.2011 - 23:08) Dron19 написал(а):
подождал бы он до завтра, я бы помог, но спать охота

Спустя 2 минуты, 59 секунд (27.01.2011 - 23:11) inpost написал(а):
if ((int)$number < 60)

Спустя 3 минуты, 47 секунд (27.01.2011 - 23:15) Invis1ble написал(а):
inpost
1. насколько я понял, ТС говорит, что нужно выбрать числа, а не просто сравнить...
2. а если будет несколько чисел в строке? =)

Спустя 2 минуты, 33 секунды (27.01.2011 - 23:18) kirik написал(а):
Цитата (Dron19 @ 27.01.2011 - 14:49)
ага smile.gif посмотри что она у тебя пропустит biggrin.gif только от нуля до пяти с дробной части до 9 и все smile.gif

Почему? На мой взгляд регулярка dima4321 вполне решает задачу.

Спустя 6 минут, 9 секунд (27.01.2011 - 23:24) Invis1ble написал(а):
kirik
Цитата
регулярка dima4321 вполне решает задачу

имхо, ты не прав )

Спустя 13 минут, 32 секунды (27.01.2011 - 23:37) aH6y написал(а):
Автор написал от 0 до 59. То есть так правильнее:

if ((int)$number < 60 && (int)$number >= 0)

Спустя 24 минуты, 50 секунд (28.01.2011 - 00:02) kirik написал(а):
Цитата (Invis1ble @ 27.01.2011 - 15:24)
имхо, ты не прав )

Да, немного доработать надо: \D([0-5]\.?[0-9])\D smile.gif

Спустя 6 минут, 1 секунда (28.01.2011 - 00:08) Invis1ble написал(а):
kirik
Цитата
Да, немного доработать надо: \D([0-5]\.?[0-9])\D

а если такое число: 10.1 ?
или например такое: 10.2342 ? или 1.323 ?
поставленным условиям удовлетворяет, но регулярка не пустит wink.gif

Спустя 11 минут, 9 секунд (28.01.2011 - 00:19) kirik написал(а):
Цитата (Invis1ble @ 27.01.2011 - 16:08)
поставленным условиям удовлетворяет, но регулярка не пустит

Да.. чёт затупил - рассматривал число как строку.
Можно совмещенный вариант:
preg_match_all('/\-?\d+\.?\d*/', $txt, $out);
foreach($out[0] as $k => &$v) {
$v = (float) $v;
if($v > 59 || $v < 0) {
unset($out[0][$k]);
}
}

unset($v);
print_r($out[0]);

Спустя 7 минут, 7 секунд (28.01.2011 - 00:26) Invis1ble написал(а):
kirik
интересный вариант, но думаю чистая регулярка намного быстрее сработает

Спустя 10 часов, 26 минут, 27 секунд (28.01.2011 - 10:53) taka написал(а):
Всем спасибо, особенно Dron19. и чего я раньше не догадалась что можно просто задать условие )))

Спустя 6 часов, 37 минут, 52 секунды (28.01.2011 - 17:31) Dron19 написал(а):
Цитата (kirik @ 27.01.2011 - 21:02)

Да, немного доработать надо: \D([0-5]\.?[0-9])\D smile.gif

Не подойдет wink.gif ПС, я не проверял, но сразу видно!

Спустя 16 минут, 16 секунд (28.01.2011 - 17:47) Invis1ble написал(а):
Цитата
Всем спасибо, особенно Dron19. и чего я раньше не догадалась что можно просто задать условие )))

ыыыыы)
Вот почему нужно ументь грамотно формулировать свои вопросы ) А я-то подумал, что нужно из текста доставать числа =)

Спустя 6 минут, 33 секунды (28.01.2011 - 17:53) Dron19 написал(а):
неее, это просто я очень очень умный biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.