使用正则表达式删除括号内的特定字符

我有这样一行:

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

回到顶部