Chinaunix
标题:
增加点人气:字符串一次替换2部分
[打印本页]
作者:
legs
时间:
2019-08-27 16:37
标题:
增加点人气:字符串一次替换2部分
本帖最后由 legs 于 2019-08-27 16:40 编辑
字符如下:
1a1b2c2-3d3
复制代码
"-"之前的字符里的数字替换为8,"-"之后的所有数字替换为9,结果应如下:
8a8b8c8-9d9
复制代码
会几种其它方法,没想出来直接一句替换怎么做的(不使用分组法,假设不知道哪个位置是数字)。
作者:
qwsxcd
时间:
2019-08-27 17:10
作者:
orangetouch
时间:
2019-10-15 10:56
perl -e '$s="1a2-3c22"; $a=0; $f=sub{if($_[0] eq "-"){$a=1; return "-";}elsif($a){return 9;}else{return 8;}}; $s=~s/(\d|\-)/$f->($1)/eg; print $s'
复制代码
作者:
orangetouch
时间:
2019-10-15 10:56
perl -e '$s="1a2-3c22"; $a=0; $f=sub{if($_[0] eq "-"){$a=1; return "-";}elsif($a){return 9;}else{return 8;}}; $s=~s/(\d|\-)/$f->($1)/eg; print $s'
复制代码
作者:
legs
时间:
2019-10-16 10:53
回复
4#
orangetouch
谢谢,这也是种思路,不过搞得复杂了,我还是直接两个替换简单点:s///g;s///g
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2