示例文件内容:
0109150103,1807111225,0305102306
输出将是:
01091501C,18071112Y,03051023F
假设我将字符串拆分为数组,然后评估每个数字以查看带有substr的最后2位数字并替换为相应的字母.想知道什么是最有效的方法来做这个恶看,看看01然后设置为A,依此类推.
我会做的蛮力方式如下:
$data=<file.txt>;@tokens=split /,/,$data;while(@tokens){ print substr($_,7)."A," if(substr($_,8,2)=='01'); print substr($_,7)."B,2)=='02');#.#. print substr($_,7)."Z,2)=='26');}解决方法 可以使用 chr
echo "0109150103,0305102306" | perl -wnE'@t = split /,/; s/(..)$/chr(64+)/e for @t; say for @t'
其中/ e修饰符使正则表达式中的替换部分被评估为代码.
总结以上是内存溢出为你收集整理的在Perl中用逗号分隔的列表替换字符串的一部分全部内容,希望文章能够帮你解决在Perl中用逗号分隔的列表替换字符串的一部分所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)