不言而喻,我是 Perl 和正则表达式的新手,我正在尝试在 perl 正则表达式中使用数组中的元素。这是片段
my $temp = $line =~ s/somestring[^\n]*$_// for @myarray;
如果我硬编码字符串而不是 $_ 它工作正常。另外 $_ 单独打印字符串。那我做错了什么?即使是使用 for 循环的扩展版本也不会产生匹配项。
P.S 只是为了澄清数组只有一个元素,我知道它与行匹配。
最佳答案
它应该可以添加括号,虽然我希望数组的内容没有特殊字符,因为您将需要使用 quotemeta
函数来转义它们。
my $temp;
($temp = $line) =~ s/somestring[^\n]*$_// for @myarray;
关于regex - 在 perl 中使用数组元素进行模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475438/