Почему следующий код:
<?php echo preg_replace("/(.*)/", "$1.def", "abc");
Вывод abc.def.def
вместо abc.def
?
Мне интересно понять, почему происходит повторение.
Использование /(.+)/
или /^(.*)$/
работает так, как ожидалось, но я не ищу решение, просто задавая вопрос (хотя эти шаблоны могут быть связаны с ответом).
Tinker с живой версией здесь.