0

我似乎无法弄清楚什么是注册。表达式。符号符合我的需要:

我在 DEBUG() 宏中包装了一些调试代码......

例如,要在日志级别 1 中打印一些调试输出,我使用以下代码位:

DEBUG_LVL_1(printf("some text");)

不过,情况并非总是如此——有时我的 printf 语句没有宏包装器。我想对这些情况进行搜索和替换......即没有 DEBUG_LVL_ 宏,但存在 printf 语句......

我怎么做?

4

2 回答 2

1

如果您选择的语言/工具支持前瞻,您可以使用

^(?!.*DEBUG_LVL_1).*printf

(?!^.*DEBUG_LVL_1)是一个否定的前瞻断言DEBUG_LVL_1,如果在字符串中的某处找到,这将失败。

所以这个正则表达式将匹配printf,但DEBUG_LVL_1前提是同一行中没有某处。

在 Regexr 上查看

于 2012-06-04T09:32:33.043 回答
1

给你^((?!DEBUG_LVL_1)printf.*)$顺便说一句,使用这个网站http://rubular.com来检查你的正则表达式

于 2012-06-04T09:34:21.770 回答