Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с ругклярками

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужна помощь
vanicon
Отправлено: 25 Мая, 2011 - 02:32:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Есть текст вот такого типа: +9...+15, -9...+15 и т.д
И с помощью регулярных выражений нужно назначить в переменную $min = '+9'; а в переменную $max = '+15';
Я делал это без регулярных выражение путем подсчета длины символов и так далее...
И получился громоздкий код, для такой не сложной задачи, а регулярных выражений достаточно пару строк.
Подскажите как тоже самое сделать с помощью регулярных выражений


-----
Так было, так есть и так будет
 
 Top
ReniFerre
Отправлено: 25 Мая, 2011 - 03:52:21
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




я бы использовал функцию preg_split(), а затем прошелся бы по результирующему массиву.
 
 Top
Champion Супермодератор
Отправлено: 25 Мая, 2011 - 08:03:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Да, правильно. Регулярные выражения никаких арифметических действий не выполняют. Чтобы сравнить то, что сматчилось, надо обработать дополнительно.
 
 Top
vanicon
Отправлено: 25 Мая, 2011 - 12:49:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Нашел на форуме способ вытащить минимальное кол-во температуры
PHP:
скопировать код в буфер обмена
  1.  
  2. $temperatura_min = '+9...+15';
  3. $temperatura_min = preg_replace('/\…*/','.',$temperatura_min);
  4. $temperatura_min = preg_replace('/\..*/','',$temperatura_min);
  5.  


-----
Так было, так есть и так будет
 
 Top
OrmaJever
Отправлено: 25 Мая, 2011 - 13:03:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. $temperatura_min = '+9...+15';
  2. list($min, $max) = explode('...', $temperatura_min);
  3. echo $min, ' - ', $max;

Закатив глазки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB