Ограничение свободы Preg_Replace()

SeaGull

Junior Member
Ограничение свободы Preg_Replace()

По задумке, скрипт должен приводить текст в заданный вид, согласно списку правил.
PHP:
<?
$Rules=array(
	"/hello[[:punct:] ]{1,}world[[:punct:]]*/i" =>	"Hello, World !!!",
	"/hello[[:punct:]]*/i"					  =>	"Just 'Hi'."
			);

$line="HELLO - WORLD. Hello!";

echo preg_replace(array_keys($Rules), array_values($Rules), $line);
?>
На выходе хотелось увидеть:
Hello, World !!! Just 'Hi'.

А выходит:
Just 'Hi'. World !!! Just 'Hi'.

Т.е. preg_replace() применяет очередное правило уже к измененной предыдущим павилом строке.

Подскажите пожалуйста, можно ли объяснить preg_replace'у, что уже замененные части строк трогать не надо ?

P.S. Массив Rules - более 10'000 записей. Любой перебор в цикле - крайне накладен.
 
Сверху