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]   

> Без описания
WizAnd
Отправлено: 17 Декабря, 2017 - 20:15:45
Post Id


Новичок


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


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




Добрый день!

Написал такое регулярное выражение замены:


<param name="Цена опт">(\d+)(\.)(\d+)</param><param name="МРЦ"></param><param name="Наличие">Карьер</param>

<param name="Наличие">Карьер</param><price>\1</price>

По сути, оно меняет параметр "значение цены опт" на значение цены в тегах, как это должно быть в yml

А можно ли в регулярных выражениях это число умножить на коэффициент
 
 Top
Строитель Модератор
Отправлено: 17 Декабря, 2017 - 21:35:00
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




WizAnd, именно на уровне regex - нет. Но можно для замены вместо preg_replace() использовать preg_replace_callback(), и в теле callback-функции выполнять арифметические операции с найденным в regex соответствием.
 
 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