Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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,如果我有一个字符串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("(?<=\\.).*(?=\\?)", ""));