如何使用正则表达式删除括号/括号中的所有非数字字符?

Fra*_*nkK 1 java regex

我试图从字符串中删除括号和括号之间的所有非数字字符,例如"hello (a1b2c3) (abc)"将变为"hello 123".

我怎么用正则表达式呢?

anu*_*ava 6

根据OP的评论,没有不平衡或转义的报价.记住这一点是一个单一的replaceAll方法调用来实现:

String repl = input.replaceAll("(?:\\D(?=[^(]*\\))|\\)\\s*)", "");

//=> hello 123
Run Code Online (Sandbox Code Playgroud)

使用正向前瞻我们使用前瞻查找括号内的所有非数字,\\D(?=[^(]*\\))然后)在交替中删除后跟可选空格.

RegEx演示