Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何替换多个括号层之间的所有内容?_Java_Regex - Fatal编程技术网

Java 如何替换多个括号层之间的所有内容?

Java 如何替换多个括号层之间的所有内容?,java,regex,Java,Regex,我希望使用replaceAll()方法替换java中一组括号之间的所有内容。我遇到的问题是,在括号集之间有另一个括号集,因此它看起来如下:(填充这里(更多填充)和更多填充)并且使用正则表达式:\(.*?\\)不起作用,因为嵌套的括号只会替换其中的一部分。关于我可以用来替换所有东西的正则表达式,有什么建议吗?尝试避开圆括号,如: String data_message = "stuff(stuff here (more stuff) and more stuff)"; System.out.pri

我希望使用replaceAll()方法替换java中一组括号之间的所有内容。我遇到的问题是,在括号集之间有另一个括号集,因此它看起来如下:(填充这里(更多填充)和更多填充)并且使用正则表达式:
\(.*?\\)
不起作用,因为嵌套的括号只会替换其中的一部分。关于我可以用来替换所有东西的正则表达式,有什么建议吗?

尝试避开圆括号,如:

String data_message = "stuff(stuff here (more stuff) and more stuff)";
System.out.println(data_message.replaceAll("\\(.*\\)", ""));
Output:
stuff

如果对嵌套级别没有限制,并且您使用的是“传统”regexp,那么很遗憾,答案是“否”(例如,请参阅此问题的公认答案:)


如果您同意有限嵌套,或者同意将您的regexp语言特定化。。。好的,检查这个问题的其他答案:)

你想要什么输出?”(这里的东西(更多的东西)和更多的东西)“到”(这里的东西和更多的东西)”?我想删除()中的所有内容,所以如果它是“这里的东西(更多的东西)和更多的东西”,我只会得到东西而没有其他东西。尽管为了将来的参考,做另一个也会很有帮助,尽管我认为我可以通过使用子字符串来做到这一点。多层括号不是正则表达式的问题,既然语言不规范,那我该怎么办呢?这是根据OP的规范。OP没有明确说明你的要求。我认为这不管用,但它做到了。我以为那会把绳子上的东西都去掉。谢谢