【发布时间】:2011-08-30 05:55:25
【问题描述】:
我在理解 /e 正则表达式修饰符的这种简单用法时遇到了一点麻烦。
my $var = 'testing';
$_ = 'In this string we are $var the "e" modifier.';
s/(\$\w+)/$1/ee;
print;
返回:“在这个字符串中,我们正在测试“e”修饰符。”
我不明白为什么需要两个“e”修饰符。据我所见,$1 应该从字符串中捕获“$var”,然后单个“e”修饰符应该能够用它的值替换变量。但是,我一定是误解了一些东西,因为仅使用一个 'e' 修饰符尝试上述代码不会明显替换字符串中的任何内容。
不好意思问了这么简单的问题!
谢谢。
【问题讨论】:
-
请注意,“e”不是正则表达式修饰符,因为它不会影响正则表达式!它只影响更换部件。所以“e”修改了 s/// 操作符,而不是正则表达式。