Удалить блок тегов lex из строки
Здравствуйте, у меня есть этот шаблон синтаксического анализатора lex, который содержит тег обратного вызова, который я хочу удалить, потому что я получаю бесконечный цикл.
Я пробовал с php preg_replace
но тогда я получаю белый экран. Тег, который я хочу удалить, имеет следующий формат:
{{ search:query term="value" .. more attributes .. }}
// any content between these tags needs to be removed as well, including new lines
{{ /search:query }}
И это моя попытка на preg_replace:
$text = preg_replace('@\{\{\ssearch:(.*?)\}\}(.*?)\{\{\s/search:(.*?)\s\}\}@is','',$text);
Но это не работает. Любой совет почему?
1 ответ
$text = preg_replace('\{\{\s+search:query(\s+\S+=".*")+\s*\}\}.*\{\{\s*/search:query\s*\}\}Uims', '', $text);
Обрабатывает пропущенные и несколько пробелов, один или несколько attr="value"
пары, многострочные и не жадные.