当前位置: 代码迷 >> CGI >> perl: 字符串替换的有关问题,
  详细解决方案

perl: 字符串替换的有关问题,

热度:593   发布时间:2012-03-23 12:06:21.0
perl: 字符串替换的问题,请教高手。
在一个字符串中,假设     $test   =   "aaaaabaaa ";

现在要把 "b "前面的每一个 "a "都替换成一个 "c ",而 "b "后面的 "a "保持不变。

替换完以后的结束就是   $test   =   "cccccbaaa "

这里的 "a ", "b ", "c "分别代表不同的字符串,

请问实现这一功能的perl正则表达式要怎么写?谢谢。

(如果一个正则表达式实现不了,多个正则表达式也可以)

------解决方案--------------------
先以split(“b”)把这个分成2个子段

对前面的替换后+b+后面的子串
------解决方案--------------------
$s =~ s/([a]+)(b[a]+)/
my $a = $1;
$a =~ s/a/c/g;
return $a.$2;
/eg
------解决方案--------------------
$test = "aaaaabaaa ";
$test =~ s/aaaa/cccc/; #这个只会替换第一个匹配,如果是整个string的匹配的话,自己加参数
print $test;