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

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

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

 

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

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

тема: Замена со сложением

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

 
 автор: cheops   (12.11.2005 в 23:04)   письмо автору
 
   для: tvoydead   (12.11.2005 в 19:12)
 

А нет так не получится... для таких замен следует пребегать к замене с использованием функции обратного вызова
<?php
  $var 
"dog"// если есть слово dog - прибавляем единицу.
  
$str "cat=32|dog=31|fly=65"// длинная строка
  
$pattern "|($var=)([0-9]+)|i"// это, чтобы разбить длинную строку
  
$str preg_replace_callback(
              
$pattern,
              
"plus_match",
              
$str);
  print 
$str;

  
// функция обратного вызова
  
function plus_match($matches
  {
    
$one=1// единица :)
    // как обычно: $matches[0] -  полное вхождение шаблона
    // $matches[1] - вхождение первой подмаски,
    // заключенной в круглые скобки, и так далее...
    
return $matches[1].($matches[2]+1);
  }
?>

PS Вопросы посвящённые регулярным выражениям лучше сразу размещать в форуме Регулярные выражения

   
 
 автор: Akira   (12.11.2005 в 19:35)   письмо автору
 
   для: tvoydead   (12.11.2005 в 19:12)
 

Я что-то не понял.
Что вы хотите? Заменить "слово" на порядковый номер?
Или записать, сколько раз встречаеться "слово"?

   
 
 автор: tvoydead   (12.11.2005 в 19:12)   письмо автору
 
 

Я хочу использовать функцию ereg_replace чтобы найти переменную и затем прибавить к ней единицу. Только у меня никак не получается это сделать. Не судите строго, может это и просто сделать, но я только начинаю изучать PHP.
<?
$var="dog";\\если есть слово dog - прибавляем единицу.
$one=1;\\ единица :)
$var2= "($var=)([0-9]+)";\\это, чтобы разбить длинную строку
$replace="\\1\\2+$one)";\\тут надо прибавить 1
$str = "cat=32|dog=31|fly=65";\\длинная строка
$str = ereg_replace("$var2", "$replace", $str);\\сама функция
print $str;
?>

   

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

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

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