Java 无法在两个注释之间匹配代码,多次

Java 无法在两个注释之间匹配代码,多次,java,regex,Java,Regex,我想在某个文件中的两个注释之间获取内容 像一个文件x #user code alert(""); alert(""); #user code { === ==== } #user code alert("as"); alert("as"); #user code 我使用这个正则表达式模式来匹配 final Pattern pat = Pattern.compile("//#User code\r?\n(.*)\r?\n//#User code" , Pattern.DOTALL)

我想在某个文件中的两个注释之间获取内容

像一个文件x

#user code
alert("");
alert("");
#user code


{
 ===
====
}

#user code
alert("as");
alert("as");
#user code
我使用这个正则表达式模式来匹配

final Pattern pat = Pattern.compile("//#User code\r?\n(.*)\r?\n//#User code" ,    Pattern.DOTALL);
但它从第一个用户代码到文件结尾都是匹配的


请提供帮助。

一个快速解决方法是使用
*?
而不仅仅是
*
*
更改为非贪婪重复,将匹配到最近的
#用户代码,而不是最远的。

您可能还希望使用不区分大小写的标志
(?i)