当前位置:  开发笔记 > 编程语言 > 正文

正则表达式多次匹配代码块

如何解决《正则表达式多次匹配代码块》经验,为你挑选了1个好方法。

我想一个代码块匹配的多个时间的文件,但不能工作了正则表达式来做到这一点.代码块的一个例子是:

//@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文件最后一行末尾的一个大块.

有任何想法吗?



1> cletus..:

基本上你的正则表达式是贪婪的.这意味着通配符操作符可以根据您看到的结果尽可能多地获取.只要在适当的时候将其改为非贪婪.在你的情况下使用:

/(/{2}\@debug)(.|\s)*?(/{2}\@end-debug).*/

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有