我试图从字符串中删除括号和括号之间的所有非数字字符,例如"hello (a1b2c3) (abc)"
将变为"hello 123"
.
我怎么用正则表达式呢?
根据OP的评论,没有不平衡或转义的报价.记住这一点是一个单一的replaceAll
方法调用来实现:
String repl = input.replaceAll("(?:\\D(?=[^(]*\\))|\\)\\s*)", ""); //=> hello 123
使用正向前瞻我们使用前瞻查找括号内的所有非数字,\\D(?=[^(]*\\))
然后)
在交替中删除后跟可选空格.
RegEx演示