如何编写正则表达式以匹配此类组(在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块不匹配。
答案 0 :(得分:3)
让搜索者不再贪婪:
START(.*?)END
不要忘记标志Pattern.DOTALL
答案 1 :(得分:1)
在模式中,您应该指定一个标志,使.
也匹配新行:
Pattern.compile("START(.*?)END", Pattern.DOTALL);
编辑:另外,正如Carlos在评论中指出的那样,您还应使您的正则表达式不贪心(将.*
替换为.*?
)。