Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вытащить число в разных представлениях
 
 автор: pittop   (12.12.2011 в 02:20)   письмо автору
 
 

В тексте требуется вытащить числа, которые могут быть представлены в разном виде

1
22
3 333 (один пробел) - считается одним числом 3333
12 345 678 (один пробел) - считается одним числом 12345678
1.234.567.890 - считается одним числом 1234567890
1,234,567,890 - считается одним числом 1234567890
Вариант 12 345 567(два пробела)12 345 567 - считаются разными числами.

Пытаюсь, что то типа этого
$pattern = "/((?<!.)|(?<=\s))[+-]?[+-]?[\d]+(\.|,|\s){0,1}[\d]+(\.|,|\s){0,1}[\d]+(\.|,|\s){0,1}[\d]+(?=\s)/";
preg_match_all($pattern, ...........);

но как-то не очень получается.

Или как вариант - удалить все одиночные пробелы, запятые, точки между цифрами во всём тексте (как?), и потом вытащить цифры.

  Ответить  
 
 автор: duhon   (12.12.2011 в 14:07)   письмо автору
 
   для: pittop   (12.12.2011 в 02:20)
 

попробуй так
\s*((?:(?! {2,}) |,|\.|\d)+)\s*

  Ответить  
 
 автор: pittop   (12.12.2011 в 20:18)   письмо автору
 
   для: duhon   (12.12.2011 в 14:07)
 

Как всё просто то!
Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования