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

Max*_*mus 0 scripting perl

我想使用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 }";
Run Code Online (Sandbox Code Playgroud)

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

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

my @b = split (/[,{}\s]/,$a);
Run Code Online (Sandbox Code Playgroud)

Jar*_*ell 6

提取时,你通常会想要找你什么想要,你不想要的东西,而不是分裂.在这种情况下尝试全局正则表达式匹配:

# Match each integer-like value, including sign:
my @b = $a =~ /-?\d+/g;
Run Code Online (Sandbox Code Playgroud)

似乎可以做到这一点.