在Perl中将字符插入字符串的最佳方法是什么?

时间:2014-07-14 16:50:31

标签: regex perl substr

在Perl的多个位置将字符插入字符串的最佳方法是什么?我有一个字符串,我已删除任何非数字字符。之后,我想在结束时从第4个位置和第8个位置插入一个破折号。您猜对了,我修改了所有输入的电话号码,以便它们都具有相同的格式:XXX-XXX-XXXX

$number =~ s/[^0-9]//g;
substr($number, -4, 0, '-');
substr($number, -8, 0, '-');

是否有一个正则表达式可以执行上述代码,但只需一行?那里有什么更有效的东西,我不知道吗?

提前致谢!

2 个答案:

答案 0 :(得分:5)

这也有效:

$number =~ s/(...)(...)(....)$/$1-$2-$3/

答案 1 :(得分:4)

不确定效果,但unpack - 和 - join也有效:

join( '-', unpack 'A3 A3 A4', $number )