[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Крайнее правое число в строке
Reflex
Имеем строку вида:
Набор любых символов, чисел и букв! >_<! 21:15. 2010. ну и интересное нам число -> 3246987 вот так вот

Строка абсолютно любая, интересует только самое правое число. Тип числа только integer.

Интересует возможность достать число регулярным выражением.



Спустя 1 минута, 10 секунд (26.07.2010 - 13:00) DedMorozzz написал(а):
да запросто. #.*([0-9]+)#isu
От то что в скобках и выводи/забирай

Спустя 13 минут, 30 секунд (26.07.2010 - 13:14) Reflex написал(а):
жадность съедает все числа с начала строки, остаётся только одно число `7` необходимо `3246987`.

Спустя 6 минут, 30 секунд (26.07.2010 - 13:20) DedMorozzz написал(а):
$a="Набор любых символов, чисел и букв! >_<! 21:15. 2010. ну и интересное нам число -> 3246987 вот так вот";
$a=preg_replace('#.*(?<![0-9])([0-9]+).*#isu','$1',$a);
echo $a;//3246987

Спустя 6 минут, 50 секунд (26.07.2010 - 13:27) SlavaFr написал(а):
#(\d++)\D*$#m

Спустя 10 минут, 49 секунд (26.07.2010 - 13:38) Reflex написал(а):
Спасибо, остановлюсь на
#.*(?<![0-9])([0-9]+).*#s

Теперь буду знать, что такое негативный просмотр назад (с отрицанием).

Спустя 9 минут, 4 секунды (26.07.2010 - 13:47) Reflex написал(а):
1) #(\d+)\D*$#
2) #.*(?<![0-9])([0-9]+).*#
для коротких строк, где только одно число оба выражения выполняются с одинаковой быстротой, но на больших строках с обилием чисел первое выражение начинает работать значительно медленней. Например для строки в 200 символов второе выражение работает в 18 раз быстрее первого.

Спустя 1 день, 1 час, 9 минут, 9 секунд (27.07.2010 - 14:56) gzim9x написал(а):
задача именно для регулярки? или что-то подобное тоже имеет место быть...
<?php
function
getNumber($string) {
$s=explode(" ",$string);
for ($i=sizeof($s);$i>0;$i--)
if (is_numeric($s[$i]))
return $s[$i];
return false;
}
$a="Набор любых символов, чисел и букв! >_<! 21:15. 2010. ну и интересное нам число -> 3246987 вот так вот";
print getNumber($a);
?>

Быстрый ответ:

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