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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вычитание единицы из всех чисел строки

Сообщения:  [1-6] 

 
 автор: saiman   (19.09.2006 в 15:45)   письмо автору
 
   для: cheops   (19.09.2006 в 15:41)
 

Спасибо всем кто поучаствовал...
теперь то работает так как надо , по крайней мере других баг не нашел пока....
Удачи!!!!

   
 
 автор: cheops   (19.09.2006 в 15:41)   письмо автору
 
   для: saiman   (19.09.2006 в 15:30)
 

Попробуйте действительно убрать модификатор U
<?php 
  $var
="id2||some text 
id3||some text 
id4||some text"

  
$pattern "#(.+?)([\d]+)(\|\|[^\n]+(\n|\b))#ie"
  
$var preg_replace($pattern"'$1'.($2 - 1).'$3'"$var); 
  echo 
"<pre>"
  echo 
$var
  echo 
"</pre>"
?>

   
 
 автор: kasmanaft   (19.09.2006 в 15:35)   письмо автору
 
   для: saiman   (19.09.2006 в 15:30)
 

Можно убрать модификатор ' U ', здесь должно работать и без него

   
 
 автор: saiman   (19.09.2006 в 15:30)   письмо автору
 
   для: cheops   (18.09.2006 в 19:26)
 

спасибо большое за помощь , действительно работает ,...
но есть обна бага... уменьшается не число в целом, а последняя цифра , поэтому проблема возникает когда последняя цифра "ноль" например число 20 .. выдает как : 2-1, тоесть просто от "0" отнимает -1, а не от 20 -ти ... если есть идеи подскажи как исправить регулярное выражение

   
 
 автор: cheops   (18.09.2006 в 19:26)   письмо автору
 
   для: saiman   (18.09.2006 в 18:42)
 

Собственно можно без цикла обойтись
<?php
  $var
="id2||some text
id3||some text
id4||some text"
;
  
$pattern "#(.+?)([\d]+)(\|\|[^\n]+(\n|\b))#Uie";
  
$var preg_replace($pattern"'$1'.($2 - 1).'$3'"$var);
  echo 
"<pre>";
  echo 
$var;
  echo 
"</pre>";
?>

PS Такие темы лучше сразу размещать на форуме "Регулярные выражения".

   
 
 автор: saiman   (18.09.2006 в 18:42)   письмо автору
 
 

есть переменная что то в роде:
$var="id2||some text
id3||some text
id4||some text";
тоесть несколько строк в каждой из которых есть свой уникальный порядковый номер (id)
мне надо не меняя структуры строк и содержания "some text" изменять только id, например уменьшить все id на еденицу :
id1||some text
id2||some text
id3||some text
Пробовал через регулярные выражения (ereg_replace) и цикл for но выдает не то что мне надо ...
Заранее благодарен.......

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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