Java 正则表达式删除两个字符之间的字符串(独占)
如果我有一个字符串Java 正则表达式删除两个字符之间的字符串(独占),java,regex,Java,Regex,如果我有一个字符串blah.t@Z8 st?如何删除Java中字符和?之间的字符串 因此,生成的文本将是blah.? 我有以下内容,但包括在内: String s = "blah.t!@Z8-st?"; System.out.println(s.replaceAll("\\..*?\\?", "")); 您可以使用以下选项: String repl = string.replaceAll("^(.*?\\.)[^?]*", "$1"); 由于这看起来像是一场“编写最复杂的正则表达式”的竞赛,
blah.t@Z8 st?
如何删除Java中字符
和?
之间的字符串
因此,生成的文本将是blah.?
我有以下内容,但包括在内:
String s = "blah.t!@Z8-st?";
System.out.println(s.replaceAll("\\..*?\\?", ""));
您可以使用以下选项:
String repl = string.replaceAll("^(.*?\\.)[^?]*", "$1");
由于这看起来像是一场“编写最复杂的正则表达式”的竞赛,让我提交我的微薄贡献
System.out.println("blah.t!@Z8-st?".replaceAll("\\..*?\\?", ".?"));
更新
编辑后,您似乎已经有了与我完全相同的正则表达式,因此您唯一需要修复的是“替换为”部分,其中保留了分隔符。使用StringreplaceAll方法,使用以下模式: 模式
(?<=\.).*(?=\?)
(?到目前为止你做了什么?所有人都会非常感谢你方的一些努力。我已经编辑了我的帖子。@user86834,你已经有了一些正确的答案。
String s = "blah.t!@Z8-st?asdas";
System.out.println(s.ReplaceAll("(?<=\\.).*(?=\\?)", ""));