Regex 用于匹配的正则表达式不查找单词,然后查找另一个单词
我似乎不知道是什么原因。expr。符号符合我的需要: 我在DEBUG()宏中包装了一些调试代码 例如,要在日志级别1中打印一些调试输出,我使用以下代码位:Regex 用于匹配的正则表达式不查找单词,然后查找另一个单词,regex,Regex,我似乎不知道是什么原因。expr。符号符合我的需要: 我在DEBUG()宏中包装了一些调试代码 例如,要在日志级别1中打印一些调试输出,我使用以下代码位: DEBUG_LVL_1(printf("some text");) 不过,并非总是如此,有时printf语句没有宏包装器。 我想搜索并替换那些案例。。。i、 e.没有DEBUG_LVL__宏,但存在printf语句的情况下 如何做到这一点?如果您选择的语言/工具支持lookaheads,您可以使用 ^(?!.*DEBUG_LVL_1).*p
DEBUG_LVL_1(printf("some text");)
不过,并非总是如此,有时printf语句没有宏包装器。
我想搜索并替换那些案例。。。i、 e.没有DEBUG_LVL__宏,但存在printf语句的情况下
如何做到这一点?如果您选择的语言/工具支持lookaheads,您可以使用
^(?!.*DEBUG_LVL_1).*printf
(?!^.*DEBUG\u LVL\u 1)
是,如果在字符串中的某个位置找到DEBUG\u LVL\u 1
,则此操作将失败
因此,这个正则表达式将匹配printf
,但前提是同一行中没有DEBUG\u LVL\u 1
查看它在这里
^((?!DEBUG\u LVL\u 1)printf.*)
顺便说一句,使用此站点检查您的regexp所有printf而不带DEBUG\u LVL\u
:grep-r printf*;grep-v DEBUG\u LVL\u
。