首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

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

2012-02-03 
perl: 字符串替换的问题,请教高手。假设有$testabcabcabcabcabc123abc132abc231abc312abc 我想要把这个

perl: 字符串替换的问题,请教高手。
假设有     $test   =   "abcabcabcabcabc123abc132abc231abc312abc ";    
 
我想要把这个字符串最前面所有的 "abc "都替换成 "0 ",但碰到第一个非 "abc "的字符串就停止替换。    
 
转换后就是     $test   =   "00000123abc132abc231abc312abc ";    
 
请问   perl正则表达式   应该怎么写?请高手告诉我,谢谢!

[解决办法]
$test = "abcabcabcabcabc123abc132abc231abc312abc ";
$test =~ s/abc(?=abc)/000/g;
$test =~ s/abc/000/;
print $test;
[解决办法]
$test = "abcabcabcabcabc123abc132abc231abc312abc ";
$test =~ s/abc/0/g;
print $test;
[解决办法]
$test = "abcabcabcabcabc123abc132abc231abc312abc ";
$test =~ s@^((abc)*)@ '0 ' x (length($1)/length($2))@e;
print "$test\n ";
[解决办法]
s/(($m)+)(?=[^($m)])?/...
没有必要用到?=吧? /^(($m)+)/ 就可以了。
这个东西用单个正则表达式烦了点。
[解决办法]
的确用不着=?

$test = "abcabcabcabcabc123abc132abc231abc312abc ";
$m = "abc ";
$test =~ s/^($m)+/0 x (length($&)\/3)/e;
print $test, "\n ";

热点排行