Вот очень простой пример:
$regex = '~
<b> #match opening <b> tag
(.*?) #match anything in between
</b> #match closing </b> tag
~six';
preg_replace($regex, '<i>$1</i>', $input);
В этом примере регулярное выражение соответствует открывающемуся содержимому B-тега в теге и закрывающему B-тегу.Следующий шаблон (. *?) Группирует содержимое по отдельности, чтобы впоследствии вы могли ссылаться на него как на $ 1.
Если мы слегка изменим выражение, добавив дополнительные скобки для группировки:
$regex = '~
(<b>) #match opening <b> tag
(.*?) #match anything in between
(</b>) #match closing </b> tag
~six';
preg_replace($regex, '<i>$2</i>', $input);
Запасная часть изменитсяот $ 1 до $ 2, поскольку у нас есть три группы, на которые мы ссылаемся (. *?) с $ 2, поскольку это вторая группа и т. д. *
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php