使用正则表达式删除括号内的特定字符
我有这样一行:
BlockedMatch(XA, YB), Correlation(XA, QC), Correlation(YB, QC), Correlation(QC, YB)
我希望它看起来像这样:
BlockedMatch(XAYB), Correlation(XAQC), Correlation(YBQC), Correlation(QCYB)
我不能只对“,”进行替换,因为它将删除括号之外的那些实例。
我尝试了这个:
replaceAll("\\((.*?)\\)", "")
它会替换括号内的 所有内容 (而不仅仅是逗号)。我尝试将逗号和空格组合仅添加到该正则表达式中,但那时似乎并没有删除任何内容。
有人可以告诉我如何指定仅 在括号内", "
出现时删除(逗号空间)吗? __
回答:
使用前瞻:
str = str.replaceAll(", (?=[^(]*\\))", "");
此正则表达式说“代替逗号空间只有在下一括号字符是一个 接近 括号”
一些测试代码:
String str = "BlockedMatch(XA, YB), Correlation(XA, QC), Correlation(YB, QC), Correlation(QC, YB)";str = str.replaceAll(", (?=[^(]*\\))", "");
System.out.println(str);
输出:
BlockedMatch(XAYB), Correlation(XAQC), Correlation(YBQC), Correlation(QCYB)
以上是 使用正则表达式删除括号内的特定字符 的全部内容, 来源链接: utcz.com/qa/425406.html