Нужна помощь в замене java regex = sing между скобками С#, мой входной текст -
8=FIX.4.&49=(550=0449)&35=RIO&76=(AB=4560)&
ожидаемая строка вывода
8=FIX.4.&49=(550#0449)&35=RIO&76=(AB#4560)&
Поэтому хотелось бы заменить = char только внутри (550 = 0449) и (AB = 4560) С#, поэтому выход должен содержать (550 # 0449) и (AB # 4560).
Мне нравится ответ anubhava, но если вы хотите быть более строгим и утверждаете, что есть непустые термины и открывающие и закрывающие скобки, запишите термины и запишите их обратно с помощью обратных ссылок:
str = str.replaceAll("(\\(\\w+)=(\\w+\\))", "$1#$2");
Вы можете использовать:
String repl = str.replaceAll("=(?=[^()]*\\))", "#");
(?=[^()]*\))
- это lookahead, который будет соответствовать match =
только тогда, когда есть a )
следуя за ним.