java - 在任何类型的括号内用下划线替换破折号

标签 java regex

我想用字符串中任何括号内的下划线替换破折号。
示例字符串:

[a]-[a-gamma]+(a-alpha)*{a}-{b-gamma}+[a]

全部替换=?
输出

[a]-[a_gamma]+(a_alpha)*{a}-{b_gamma}+[a]

最佳答案

尝试使用 lookbehind mechanism in regexp 来完成此操作

String input = "[a]-[a-gamma]+(a-alpha)*{a}-{b-gamma}+[a]";
String result = input.replaceAll("-(?![\\[\\{\\(])","_");

关于java - 在任何类型的括号内用下划线替换破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307799/

相关文章:

java - 服务链 - Java

java - Spring Batch Item Reader 只执行一次

java - 获取 : HTTP Status 500 - Could not determine type for: Integer : What could be the reason for it?

java - 如何验证java中的字符串是否匹配所需的模式?

java - 正则表达式 SPARQL 查询

javascript - 反转一个js条件

regex - 如何防止正则表达式超出字符串/行的末尾

java - Elasticsearch for Jira-like System with Permissions

java - Android,自定义适配器,字符串和长ID

ruby - 如何使用 Ruby 的 gsub 函数替换字符串上过多的 '\n'