如何使用perl将字符串拆分为数组?

时间:2018-12-03 15:36:25

标签: arrays regex perl

有一个字符串,为:

$string= 123456-9876;

需要将其拆分为以下数组:

$string = [12,34,56,98,76]

尝试将其拆分为split('-',$ string)不能达到目的。 我如何在Perl中做到这一点?

2 个答案:

答案 0 :(得分:5)

提取数字对:(例如"1234-5678"[12,34,56,78]

$string = [ $string =~ /\d\d/g ];

提取数字对,即使用非数字分隔也是如此:(例如"1234-567-8"[12,34,56,78]

$string = [ $string =~ s/\D//rg =~ /../sg ];

答案 1 :(得分:1)

您可以使用此Perl代码捕获所有2位数字,而不必进行拆分,

$str =  "123456-9876";
my @matches = $str =~ /\d{2}/g;

print "@matches\n";

打印

12 34 56 98 76

另一种解决方案,该方法将字符串中的任何两位数字组合为任意数字,而不管原始字符串是什么

$string =  "1dd23-dsd--456-9-876";
while($string =~ /(\d).*?(\d)/g) {
        print "$1$2 ";
}

打印

12 34 56 98 76