如果我有一个字符串blah.t!@Z8-st?
,如何在Java中删除字符.
和?
之间的字符串?
因此生成的文本将为blah.?
我有以下内容,但它是包容性的:
String s = "blah.t!@Z8-st?";
System.out.println(s.replaceAll("\\..*?\\?", ""));
答案 0 :(得分:1)
由于这看起来像是“编写最复杂的正则表达式”的比赛,让我提交我的适度贡献。
System.out.println("blah.t!@Z8-st?".replaceAll("\\..*?\\?", ".?"));
在您编辑之后,您似乎已经拥有与我的完全相同的正则表达式,因此您唯一需要修复的是“替换为”部分,您可以在其中保留分隔符。
答案 1 :(得分:0)
您可以使用:
String repl = string.replaceAll("^(.*?\\.)[^?]*", "$1");
答案 2 :(得分:0)
将字符串 replaceAll方法与以下模式一起使用:
<强>模式强>
(?<=\.).*(?=\?)
<强>代码强>
String s = "blah.t!@Z8-st?asdas";
System.out.println(s.ReplaceAll("(?<=\\.).*(?=\\?)", ""));