您可以使用
String n="[a]-[a-gamma]";
System.out.println(n.replaceAll("-(?=[^\\[\\]]*\\])", "_"));
至于正则表达式本身,-
只有在符号后跟非[
s和非]
s的情况下,我才会匹配该符号,直到引擎找到为止]
。然后,我们在[]
s中。可能情况并非如此(第4个连字符[a-z]-[a-z] - ] [a-z]
),但我希望这不是您的情况。
输出:
[a]-[a_gamma]
如何使用正则表达式Java在方括号内用下划线替换破折号
您可以使用
String n="[a]-[a-gamma]";
System.out.println(n.replaceAll("-(?=[^\\[\\]]*\\])", "_"));
至于正则表达式本身,-
只有在符号后跟非[
s和非]
s的情况下,我才会匹配该符号,直到引擎找到为止]
。然后,我们在[]
s中。可能情况并非如此(第4个连字符[a-z]-[a-z] - ] [a-z]
),但我希望这不是您的情况。
输出:
[a]-[a_gamma]