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

perl替换当前行中第二个a字符为zk字符的正则如何写

2012-03-16 
perl替换当前行中第二个a字符为zk字符的正则怎么写?假设当前行为123, ahello,wrolda,345如何把第二个a替

perl替换当前行中第二个a字符为zk字符的正则怎么写?
假设当前行为
123, ahello,wrolda,345;
如何把第二个a替换成zk,第一个不变,及替换后得到
123, ahello,wroldzk,345;

[解决办法]
关键是如何描述第二个a的特征,即规则,有了规则才有正则。
比如是不是可以描述第二个a的规则是:前面是d字符,后面跟着逗号
如果是这样,可有

Perl code
$str = "123, ahello,wrolda,345";$str =~ s/(?<=d)a(?=,)/zk/g;                                                                                                                                                        print $str;
[解决办法]
Perl code
perl -le '$s="123, ahello,wrolda,345;";print $s if($s=~s/([^a]*a)([^a]*)a(.*)/\1\2zk\3/)'123, ahello,wroldzk,345; 

热点排行