Я пытаюсь разработать пакетный поиск и замену для большого текстового файла с использованием preg_replace. Я не делал этого раньше, но я думаю, что в основном понимаю этот процесс. У меня нет проблем с прямой заменой x на y. (Числа 0 и 2 в приведенных ниже массивах работают нормально.) Но я не могу понять, как сделать вставку, которая хранит согласованный текст. Я знаю, что это должно быть просто, и я попытался подражать кучу примеров.preg_replace in php not
Когда я запускаю приведенный ниже код, предложение превращается в «Улица Кролика в ночном городе». Но я пытаюсь превратить «Mabbot» в «MabbotRabbit». Как я могу сохранить «Маббот» на месте?
Спасибо!
<?php
$content = "The Mabbot street entrance of nighttown";
$patterns = array();
$patterns[0] = '/\n/';
$patterns[1] = '/Mabbot/';
$patterns[2] = '/entrance/';
$replacements = array();
$replacements[0] = '<br/>';
$replacements[1] = '$1Rabbit';
$replacements[2] = 'mentrance';
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $content);
?>
Используйте '$ 0', чтобы подставить совпадающую строку, а не' $ 1'. – Barmar
Бинго. Спасибо! – user2193632