Java 要匹配的Regexp";开始完";阻碍

Java 要匹配的Regexp";开始完";阻碍,java,regex,Java,Regex,如何编写regexp以匹配这些组(在JAVA中): 我试过: START(.*)END final Matcher matcher = Pattern.compile("START(.*)END").matcher(versions); 但多行起始-结束块不匹配。使搜索不贪婪: START(.*?)END 不要忘记标志模式。DOTALL在模式中,您应该指定一个标志,使也与新行匹配: Pattern.compile("START(.*?)END", Pattern.DOTALL); 编辑:

如何编写regexp以匹配这些组(在JAVA中):

我试过:

START(.*)END

final Matcher matcher = Pattern.compile("START(.*)END").matcher(versions);

但多行起始-结束块不匹配。

使搜索不贪婪:

START(.*?)END

不要忘记标志
模式。DOTALL

在模式中,您应该指定一个标志,使
也与新行匹配:

Pattern.compile("START(.*?)END", Pattern.DOTALL);

编辑:此外,正如Carlos在评论中指出的,您还应该让您的正则表达式不贪婪(用
*?
替换
*
)。

您使用的编程语言是什么?您需要添加一些标志,指出
也应该匹配新行。您在哪个环境中执行此操作?Bash、Python、Perl、…
*
是贪婪的,也就是说,将尝试尽可能多地匹配,在本例中,直到最后一个`END,可能是整个inputRight,答案都已更新。问题中没有指定它,但我还想添加一个警告,说明嵌套的START…END块不能由正则表达式正确匹配。
Pattern.compile("START(.*?)END", Pattern.DOTALL);