我想使用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);
答案 0 :(得分:6)
提取时,您经常需要查找做想要的内容,而不是分割您不想要的内容。在这种情况下尝试全局正则表达式匹配:
# Match each integer-like value, including sign:
my @b = $a =~ /-?\d+/g;
似乎可以做到这一点。