寻求匹配含debug(且非注释行的grep正则表达式方案
使用grep筛选含
debug(且非注释开头的行 需求
用grep结合正则表达式,找出包含debug(但不以任意数量空格后接//开头的行,需避免误排除/debug($file)这类仅含单个/的有效行。
尝试过的正则(均无法完全满足需求)
^(?![/]{2}\s+)\s*.*debug(^(?![/]{2,}).*debug(^(?![/]{2,}\s?)\s*(?!//).*debug(^(?![/]{2,}\s?)debug(
测试案例
//debug($user); 不应匹配 debug($file); 应匹配 debug($file); 应匹配 // debug($file); 不应匹配 // debug($file); 不应匹配
正确解决方案
使用支持Perl兼容正则的grep命令:
grep -P '^(?!\s*//).*debug\(' 目标文件名
正则说明
^(?!\s*//):正向否定预查,确保行开头(可包含任意数量空格)不是//,既排除了所有注释行,又不会误判仅含单个/的有效行.*debug\(:匹配行内任意字符后接debug(,确保行中包含目标字符串
内容的提问来源于stack exchange,提问作者happymacarts
相关产品推荐
相关产品推荐

