Мне нужно заменить каждый экземпляр любого текста в квадратных скобках чем-то другим, причем каждый квадрат квадратной скобки обрабатывается отдельно. Например, начните с:Синтаксис соответствия регулярному выражению
[quote author=joe link=topic=765.msg4476#msg4476 date=1330380346] This is the quoted text [/quote] This is the new post
превращается в:
** This is the quoted text ** This is the new post
Я попытался с помощью следующих действий:
preg_replace('/\[.*\]/', '**', $msgtext);
Что я получаю:
** This is the new post
Кажется, что это соответствует первому символу '[' до последнего ']' всей строки, даже если в большом тексте есть куча отдельных блоков квадратных скобок. Как изменить мое регулярное выражение для замены каждого блока между квадратными скобками отдельно? Очевидно, что мой. * В регулярном выражении соответствует всем, включая правые скобки, до последнего, но я хочу, чтобы он остановился в первой правой скобке, с которой он сталкивается, а затем повторил эту логику во всей строке.
Спасибо, ребята, все вышеописанное работает как шарм. Я использовал любой символ, кроме версии, но не жадный бы работал и получил тот же результат. Решаемые. –
@BenCahan вы должны принять ответ (нажав галочку под голосами), если вы считаете, что ответили на ваш вопрос. – cmbuckley