ReplaceAll 字符串 java 正则表达式

ReplaceAll String java regex

我有一个包含以下内容的字符串:

"Hello my name is (0.9%) and (15%) bye (10.5%) also (C9, B6)"

我想替换所有,这样我就去掉了包含百分比的括号而不是其他数字,如下所示:

"Hello my name is and bye also C9, B6"

目前我有这个,但它删除了我所有的号码,知道我该如何解决它:

.replaceAll("[\([0-9]\%)]","");

也许是这样的?

"Hello my name is (0.9%) and (15%) bye (10.5%) also (C9, B6)".replaceAll("\((?:\d|\.)+%\)", "")

Demo

这里还会删除每个带括号的百分比后的一个空格:

"Hello my name is (0.9%) and (15%) bye (10.5%) also (C9, B6)".replaceAll("\((?:\d|\.)+%\) ", "")

给出:

Hello my name is and bye also (C9, B6)

删除外括号并添加匹配到可选点前后的数字。

.replaceAll("\([0-9]+?\.?[0-9]+?\%\)", "");

注意:如果要允许前导点或尾随点,可以将“+”更改为“*”。