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 ";