Соответствие текста между фигурными скобками в PHP - PullRequest
4 голосов
/ 01 февраля 2011

В качестве прямого ответа на этот предыдущий вопрос , как я могу вытащить текст (и фигурные скобки, если это возможно) как совпадение, используя PHP?

В частности, я пишуплагин для Wordpress, и я хочу переформатировать весь текст между двумя фигурными скобками (квази-вики-разметка).

Я выполнил шаги, описанные в другом предыдущем вопросе , который я задал, и получил соответствие часть работает - это соответствие Мне нужна помощь.

Пример:

This is some {{text}} and I want to reformat the items inside the curly braces

Желаемый результат:

This is some *Text fancified* and I want to reformat the items inside the curly braces

Что у меня есть (то есть не работает):

$content = preg_replace('#\b\{\{`.+`\}\}\b#', "<strong>$0</strong>", $content);

Если сопоставить , включая скобки, слишком сложно, я могу сопоставить, используя скобкив качестве смещений, а затем удалите также «оскорбительные» фигурные скобки, используя более простую функцию сопоставления текста.

Ответы [ 2 ]

6 голосов
/ 01 февраля 2011
$content = preg_replace('/{([^{}]*)}/', "<strong>$1</strong>", $content);
4 голосов
/ 01 февраля 2011

Вам необходимо сформировать группу совпадений, используя ( круглые скобки ).

preg_replace('#\{\{(.+?)\}\}#', "<strong>$1</strong>",

Что бы ни совпадало с (.+?), его можно использовать как $1 в строке замены. Таким образом, у вас есть закрывающие {{и}} пути. Также \b был избыточен.

...