Java 要匹配的Regexp";开始完";阻碍
如何编写regexp以匹配这些组(在JAVA中): 我试过: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); 编辑:
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);