我有一个这样的字符串:
BEGIN
blabla..
END;
BEGIN
one two
END;
我想制作正则表达式,将分别找到这些部分。
我制作了正则表达式(?i)BEGIN[\s\S]*(?i)END;
但它发现此字符串是一个匹配的实例。但我需要两个。如何让它首先搜索END;
,而不是最后一次?
谢谢!
答案 0 :(得分:4)
(?i)BEGIN[\s\S]*?(?i)END;
它被称为懒惰量词。
答案 1 :(得分:2)
你需要一个非贪婪的*
:
(?i)BEGIN[\s\S]*?(?i)END;
请注意,正则表达式无法处理嵌套的BEGIN / END对。更好地使用解析器。