preg_replace()
служит для замены, первый параметр - регулярное выражение. Заключается в '//'. Второй параметр - то, на что нужно заменить.
([a-z]+) - скобочная группа номер 1, указано: "символы от
a до
z, не менее 1"
([^\}]+) - скобочная группа номер 2, здесь указано: "всё, кроме }, от 1 символа и более". В квадратных скобках, если первый символ [^ ] - далее идут символы, которые необходимо исключить. Слэш \ экранирует символ }, не обязателен, фигурная скобка не является спецсимволом.
(?P<\1>\2) - замена, которая убирает все, что не в скобочных группах
(двоеточие и { } ),
\1 и
\2 - это вызов первой и второй скобочной группы. Добавляет
(?P< > )Т.е. находим выражение, которое начинается с
{, затем идут символы
a-z - захватываем их в группу, затем
двоеточие, затем любые
символы, кроме }, захватываем в группу, и все заканчивается на
}
Затем заменяем на
(?P<, добавляем
первую захваченную группу,
>, добавляем
вторую захваченную группу и
)