在Perl中提取字符串中的所有正整数和负整数

时间:2017-04-09 07:05:38

标签: perl scripting

我想使用Perl提取字符串中的所有正整数和负整数。该字符串包含以下字符和空格 - ,{}

例如:

$a = "{ { 0,256,0,0 },{ -2,256,2,0 },{ -4,256,4,0 },{ -6,255,7,0 }
     ,{ -7,254,10,-1 },{ -8,252,13,-1 },{ -10,251,16,-1 }
     ,{ -10,249,19,-2 },{ -12,247,23,-2 },{ -14,245,27,-2 }
     ,{ -14,242,31,-3 },{ -15,239,35,-3 },{ -15,236,39,-4 }
     ,{ -16,233,44,-5 },{ -17,230,48,-5 },{ -17,226,53,-6 }
     ,{ -18,222,58,-6 },{ -18,218,63,-7 }";

我的o / p应该是数组@b,包含0,256,0,0,-2,256,2,0 ...等元素

我尝试了以下命令,但space / null元素也被添加到我的o / p数组中。

my @b = split (/[,{}\s]/,$a);

1 个答案:

答案 0 :(得分:6)

提取时,您经常需要查找想要的内容,而不是分割您不想要的内容。在这种情况下尝试全局正则表达式匹配:

# Match each integer-like value, including sign:
my @b = $a =~ /-?\d+/g;

似乎可以做到这一点。