【发布时间】:2009-12-07 04:54:28
【问题描述】:
我正在尝试替换源文件中的文本,就像如何 C 预处理器工作。我的方法是解析 常量及其值,并用 他们。我的问题如下:
在源文件中,我有:
#define CONSTANT 10
#define CONSTANT_PLUS_ONE CONSTANT + 1
我使用/^#define\s+(\w.*)\s+.*($key).*/ 匹配第二个
行,但是当我替换为s/$2/$defines{$key}/ 时,两者
CONSTANT 的实例被替换,即
#define CONSTANT 10
#define 10_PLUS_ONE 10 + 1
我是一个 Perl 新手,所以我希望有人可以 指出我正确的方向,或者如果我公然做了一个 愚蠢的错误。
【问题讨论】:
-
您是否在替换正则表达式中使用 /g,但在您的问题中省略了它?