TextPad Regex: Как найти и заменить символ в угловых скобках?
У меня есть образец текста ниже
Hello | World
<Hi | Hello|How | are | you><test|string |for |regex>
sample | text <however|replace|pipe>
быть преобразованным как ниже
Hello | World
<Hi ~ Hello~How ~ are ~ you><test~string ~for ~regex>
sample | text <however~replace~pipe>
т.е. заменить |
в <>
с ~
Я пробовал это <(?:.*?)(\|)(?:.*?)>
( http://regex101.com/r/mX1sO0)
Но это соответствует только первый |
в пределах угла <>
, И я не уверен, как это заменить. Любые направления?
1 ответ
Решение
Если ваши угловые скобки никогда не являются вложенными и всегда правильно сбалансированы, то вы можете сделать это:
\|(?=[^<>]*>)
соответствует только тем символам трубы, где следующая угловая скобка является закрывающей угловой скобкой. Тогда просто замените спички на ~
,
Смотрите это в прямом эфире на regex101.com.