正则表达式以匹配“ START ... END”块

时间:2019-11-14 16:10:10

标签: java regex

如何编写正则表达式以匹配此类组(在JAVA中):

START s1 8 a  

a a b ebd 

END


START any character END

START END

我尝试过:

START(.*)END

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

但是多行START END块不匹配。

2 个答案:

答案 0 :(得分:3)

让搜索者不再贪婪:

START(.*?)END

不要忘记标志Pattern.DOTALL

答案 1 :(得分:1)

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

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

编辑:另外,正如Carlos在评论中指出的那样,您还应使您的正则表达式不贪心(将.*替换为.*?)。