Описание
((?:(?!>).)*>.*?|)(§r)
Заменить:$1§r§a
** Для того, чтобы увидеть изображение лучше, просто щелкните правой кнопкой мыши на изображение и выберите пункт Открыть в новом окне
Пример
Демо
https://regex101.com/r/xP8dI5/1
Пример текста
§r O > O §o TEXT §r §o TEXT §r
После Replacment
§r O > O §o TEXT §r§a §o TEXT §r§a
Объяснение
NODE EXPLANATION
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
(?: group, but do not capture (0 or more
times (matching the most amount
possible)):
----------------------------------------------------------------------
(?! look ahead to see if there is not:
----------------------------------------------------------------------
> '>'
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
. any character except \n
----------------------------------------------------------------------
)* end of grouping
----------------------------------------------------------------------
> '>'
----------------------------------------------------------------------
.*? any character except \n (0 or more times
(matching the least amount possible))
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
( group and capture to \2:
----------------------------------------------------------------------
§r '§r'
----------------------------------------------------------------------
) end of \2
----------------------------------------------------------------------
Да; но вы также можете проверить, что '>' находится в первой строке; этот код заменит все '§r' на строку, которая этого не делает. –
@AndyTurner это правильно. Я оставил отказоустойчивые проверки в интересах простоты ответа. –