Potrzebna mi funkcja zamieniająca PARY odpowiednich znaczników na inne. Chodzi mi konkretnie o zamianę pary [#b] i [#/b] (bez '#') na odpowiedniki html'owe.
Kod uproszczony:
[php:1:a3ac445b34]<?php
$search = array (
"'[s*bs*](.*)[s*/s*bs*]'i"
);
$replace = array (
"<b>1</b>"
);
preg_replace($search, $replace, $string);
?>[/php:1:a3ac445b34]
Wszystko działa ok, do czasu, gdy w zmiennej $string nie będzie dwóch par znaczników [#b]. Wtedy znajdzie parę pierwszy-ostatni, a te w środku zostawi.
Tak więc problem można streścić:
Jak zbudować wzorzec pasujący do ciągu w którym NIE wystąpi inny wzorzec?