SeaGull
Junior Member
Ограничение свободы Preg_Replace()
По задумке, скрипт должен приводить текст в заданный вид, согласно списку правил.
На выходе хотелось увидеть:
Hello, World !!! Just 'Hi'.
А выходит:
Just 'Hi'. World !!! Just 'Hi'.
Т.е. preg_replace() применяет очередное правило уже к измененной предыдущим павилом строке.
Подскажите пожалуйста, можно ли объяснить preg_replace'у, что уже замененные части строк трогать не надо ?
P.S. Массив Rules - более 10'000 записей. Любой перебор в цикле - крайне накладен.
По задумке, скрипт должен приводить текст в заданный вид, согласно списку правил.
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 записей. Любой перебор в цикле - крайне накладен.