Мне нужно изменить элементы, которые окружают некоторое содержимое в строке, оставляя содержимое как есть. Я делаю это с помощью регулярного выражения, но когда я заменяю использование позиционного параметра ($ 1), он использует только первое совпадение.
Например, если у меня есть эта строка:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Я хочу изменить его на:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Но я могу получить только это:
<strong>I want<strong> to change <strong>this<strong> text,
but <strong>I can't<strong>. <strong>Why?<strong>.
Я использую следующее регулярное выражение:
\x26lt;(.*?)\x26gt;
(глобально, и заменить его на "<$1>
")
Полагаю, проблема в том, что я не могу сказать, сколько совпадений будет найдено и как обращаться к каждому из них. Возможно, в Perl я мог бы использовать $ +, но это не работает. Я делаю это с помощью модуля регулярных выражений Yahoo Pipes. Это должно быть очень похоже на реализацию PHP, afaik.
Как я могу использовать каждый матч отдельно в Yahoo Pipes?