在一个字符串中,假设 $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;