在Perl的多个位置将字符插入字符串的最佳方法是什么?我有一个字符串,我已删除任何非数字字符。之后,我想在结束时从第4个位置和第8个位置插入一个破折号。您猜对了,我修改了所有输入的电话号码,以便它们都具有相同的格式:XXX-XXX-XXXX
$number =~ s/[^0-9]//g;
substr($number, -4, 0, '-');
substr($number, -8, 0, '-');
是否有一个正则表达式可以执行上述代码,但只需一行?那里有什么更有效的东西,我不知道吗?
提前致谢!
答案 0 :(得分:5)
这也有效:
$number =~ s/(...)(...)(....)$/$1-$2-$3/
答案 1 :(得分:4)
不确定效果,但unpack
- 和 - join
也有效:
join( '-', unpack 'A3 A3 A4', $number )