作者LiloHuang (相见不如怀念)
看板Programming
标题Re: 想请教一下 perl 中的字串取代
时间Wed Sep 19 10:45:55 2007
※ 引述《[email protected] ( )》之铭言:
: $pat = "^a\/(.*)";
: $rep = "c\1d";
: 然後以 s/$pat/$rep/ 来进行取代的操作,
: 结果会得到 "c\1d"
: 因为我需要由档案中将 pattern 与 replacement 的规则读进来,
: 该如何做才能得到与第一种写法一样的结果呢?
: 希望各位先进能拨空稍微指点一下,感恩! =)
非常简单 只要使用 eval 就可以了
#!/usr/bin/perl
my $str = 'a/bcde/f';
my $pat = '^a\/(.*)';
my $rep = 'c$1d'; # \1 建议写成 $1 比较好
my $runtime = "\$str =~ s/$pat/$rep/";
eval $runtime;
print $str;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.71.152
※ 编辑: LiloHuang (61.219.36.46), 07/30/2016 13:04:52