我想使用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)
提取时,你通常会想要找你什么都想要,你不想要的东西,而不是分裂.在这种情况下尝试全局正则表达式匹配:
# Match each integer-like value, including sign:
my @b = $a =~ /-?\d+/g;
Run Code Online (Sandbox Code Playgroud)
似乎可以做到这一点.