我想一个代码块匹配的多个时间的文件,但不能工作了正则表达式来做到这一点.代码块的一个例子是:
//@debug ... // code in here ... //@end-debug (possibly more comments here on same line)
我正在尝试匹配的每个代码块将从//@debug
包含的行的末尾开始并停止//@end-debug
我现在有这个:
/(\/{2}\@debug)(.|\s)*(\/{2}\@end-debug).*/
但这匹配了从第一个//@debug
到//@end-debug
文件最后一行末尾的一个大块.
有任何想法吗?
基本上你的正则表达式是贪婪的.这意味着通配符操作符可以根据您看到的结果尽可能多地获取.只要在适当的时候将其改为非贪婪.在你的情况下使用:
/(/{2}\@debug)(.|\s)*?(/{2}\@end-debug).*/