Java 替换两个括号内的任何内容

Java 替换两个括号内的任何内容,java,regex,Java,Regex,我有这个字符串: String string = "The status is %status(" + randomString + ")%"; 在不知道随机字符串的情况下,如何用任何东西替换百分号之间的部分?您可以使用。例如: String randomString = "asdf"; String string = "The status is %status(" + randomString + ")%"; String replacement = "myStatus"; String

我有这个字符串:

String string = "The status is %status(" + randomString + ")%";
在不知道随机字符串的情况下,如何用任何东西替换百分号之间的部分?

您可以使用。例如:

String randomString = "asdf";
String string = "The status is %status(" + randomString + ")%";
String replacement = "myStatus";
String fString = string.replaceAll("%status(.*)%", replacement);
System.out.println(fString);
哪些产出:

The status is myStatus

您要使用的正则表达式是
%(.+)%
,它匹配
%status(foo)%
%status(asidh37887123-48hsZXas;;fgfg)%

要替换它,您可以执行
string.replaceAll(“%(.+)%”,“任何内容”)

这将把
状态为%status(foo)%
变为
状态为anything

两种方法:

String string = "The status is %status(aaaaaaaaaaaaaaa)%";
        int x = string.indexOf("%");
        int y = string.lastIndexOf("%");
        System.out.println(x);
        System.out.println(y);
        string = string.substring(0,x)+string.substring(y+1,string.length());
        System.out.println(string);

        string = "The status is %status(aaaaaaaaaaaaaaa)%";
        string = string.replaceAll("%.+%", "");
        System.out.println(string);
结果:


您的代码在哪里?什么不起作用?在你的标题中,你提到在括号之间替换文本,但在百分号之间有疑问。那是哪一个呢?对于当前的示例来说,这可能没什么大不了的,但我们希望在您稍后给出其他示例时避免出现这种情况,因为这些示例将使发布的答案无效。您可以在括号内使用括号吗?现在我感兴趣的是OP希望看到的文本是什么,如
“foo%x(…)%bar%y(…)%”
。或
“foo%x(%y(..)%..)%”