Perl regexp替换数组

时间:2018-04-25 20:25:13

标签: regex perl

我想使用Perl脚本A来生成和替换Perl脚本B中的数组。

脚本B最初包含的内容如下:

my @old_array = (value1, value2, etc);

脚本A包含类似的内容:

for ( $a = 0; $a < $nr_values; $a++ ) {

    $list .= "$new_values[$a], ";
}
`perl -pi -e 's/^my \@old_array.*/my \@new_array \= \( $list \)\;/g' script_B.pl;`

但是,当我运行Perl脚本A

  • 对所有my声明的变量

  • 进行替换
  • 数组@符号和名称未更改:仅更新值

请告知如何使用Perl正确替换数组?

1 个答案:

答案 0 :(得分:0)

我找到了使用三反斜杠的正确解决方案:

perl -pi -e 's/^my \\\@temps.*/my \\\@temps \= \( NEW \)\;/g' modify.pl;

这解决了我的正则表达式查找和替换问题。

对于那些试图帮助实质性评论的人,谢谢!对于那些坚持我没有提供足够信息,或者我的问题是由非上市代码引起的人,我发现你的回答非常不专业,并没有关注被问到的问题。