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

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

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

 

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

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

тема: замена нескольких выражений
 
 автор: vvsh   (19.05.2009 в 19:58)   письмо автору
 
 

Всем привет.
Есть такое вот
$body = "";
$search = "#\[code=(html|php|css|js|sql)\](.*)\[/code\]#";
$replace = "<code class='$1'>$2</code>";
$body = preg_replace($search, $replace, $body);


если в $body содержится
[code=php]$s = "1";[ /code ], то заменяется на <code class='php'>$s = "1";</code>


если
[code=php]$s = "1";[ /code ]<br>[code=js]var s = "1";[ /code ] то на [code]<code class='php'>$s = "1";[ /code ]<br>[code=html]var s = "1";</code>


([ /code ] без пробелов)

как сделать так, чтобы во втором случае получалось
<code class='php'>$s = "1";</code><br><code class='js'>var s = "1";</code>

заранее спасибо

  Ответить  
 
 автор: AcidTrash(кафе)   (20.05.2009 в 09:34)
 
   для: vvsh   (19.05.2009 в 19:58)
 

Уменьшите жадность РВ
$search = "#\[code=(html|php|css|js|sql)\](.*?)\[/code\]#";

  Ответить  
 
 автор: vvsh   (20.05.2009 в 20:08)   письмо автору
 
   для: AcidTrash(кафе)   (20.05.2009 в 09:34)
 

Спасибо, но я в конец выражения добавил isU, и все заработало...

  Ответить  
 
 автор: AcidTrash   (20.05.2009 в 21:51)   письмо автору
 
   для: vvsh   (20.05.2009 в 20:08)
 

добавил isU
U добавленое вами в мой пример увеличивает жадность, странно, что у вас все нормально, так как локальное уменьшение идет посредством ?.
Насчет остальных модификаторов, то это по вашему заданию, которое не было в полном объеме опубликовано.

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

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