2017-04-09 74 views
0

我想使用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 }"; 

我的O/P應該是包含0,256,0,0陣列@b,-2,256,2,0 ..等作爲其元素

我已經嘗試過下面的命令,但空間/ null元素也添加到我的o/p數組。

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

回答

6

提取時,你通常會想要找你想要的,你不想要的東西,而不是分裂。嘗試全球正則表達式匹配這種情況下:

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

似乎要做的伎倆。

+0

謝謝。這工作 – Maximus