作者roylee17 (把我id还我阿......)
看板Programming
标题Re: 想请教一下 perl 中的字串取代
时间Wed Sep 19 07:47:12 2007
※ 引述《[email protected] ( )》之铭言:
: 小弟刚接触 perl,有点问题想麻烦各位先进帮忙解答一下:
: 我知道在 perl 中可以用 s/pattern/replacement/ 来取代字串,
: 若原始字串是 "a/bcde/f", 若在程式码中以 s/^a\/(.*)/c\1d/ 进行取代
: 结果会变成 "cbcde/fd"
: 但是若我想把 pattern 跟 replacement 放在变数里,
: 比方说
: $pat = "^a\/(.*)";
: $rep = "c\1d";
: 然後以 s/$pat/$rep/ 来进行取代的操作,
: 结果会得到 "c\1d"
: 因为我需要由档案中将 pattern 与 replacement 的规则读进来,
: 该如何做才能得到与第一种写法一样的结果呢?
: 希望各位先进能拨空稍微指点一下,感恩! =)
下面的方法应该可以完成需求
不过我也想知道更简洁的方法
my $pat = "^a\/(.*)";
my $str = "a/bcde/f";
if( $str =~ /$pat/){
my $rep = "c$1d";
$str =~ s/$pat/$rep/;
print $str;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.145.65