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(..)%..)%”
。