【发布时间】:2012-07-14 01:40:54
【问题描述】:
Perl 和正则表达式的新手不用说,我正在尝试在 perl 正则表达式中使用数组中的元素。这是sn-p
my $temp = $line =~ s/somestring[^\n]*$_// for @myarray;
如果我硬编码字符串而不是 $_ 它工作正常。 $_ 也可以单独打印字符串。那么我做错了什么?即使使用 for 循环的扩展版本也不会产生匹配项。
P.S 只是为了澄清数组只有一个元素,我知道它与该行匹配。
【问题讨论】:
-
我不是 Perl 开发人员,但在 REGEX 中
$有特殊含义 - 它锚定到字符串的末尾,因此可能需要转义。 -
@utkanos:没必要。标量变量插值在 Perl 正则表达式中工作得很好。 perldoc perlop 在“引用和引用类似运算符”部分下。
-
这就是我发布评论而不是答案的原因。我只是说,在一般的 REGEX 语法中,
$具有特殊含义。我不是 Perl 开发人员,所以我没有提交 - 我只是在浮动这个想法。 -
更多代码可能会有所帮助,例如说明问题的实际值。我不确定你想要完成什么或它是如何失败的。
-
谢谢@RickF。对我来说,这确实是一个相当微不足道的疏忽/误解,我的问题得到了回答。