[求助]数字匹配问题,这其中哪里错在哪里

[求助]数字匹配问题,这其中哪里错在哪里

[求助]数字匹配问题,这其中哪里错在哪里
195,220 : 66,90 (-18.30 = -28.07 + 2.87 + 6.90)
我要分别提取上面的数字,分别为195,220,66,90,-18.30,-28.07,2.87,6.90,以下是我的处理,但没成功
$num=~/(\d+)\,(\d+)\:(\d+)\,(\d+)\(([\-]\d+\.\d+)\=([\-]\d+\.\d+)\+([\-]\d+\.\d+)\+([\-]\d+\.\d+)\)/
请问高手,这其中哪里错在哪里?Thank you advance!!
我的解决方法----[quo.
我的解决方法,把那个get_math_list函数单独拿出来用就可以了,返回的是一个数组


#!/usr/bin/perl -W

use strict;
use warnings;

sub get_math_list {

  my $str_full = $_[0];

  my $token = "";
  my @result;
  $str_full .= " ";

  for (my $i = 0; $i < length $str_full; $i++) {

   if ((substr $str_full, $i, 1) =~ /(\.|\d)/) {
     $token .= $1;
   }else {
     if (( defined $token) and (length($token) > 0)) {
       
        push @result,$token;
      }
      $token = "";
   }
  }

  return @result;
}


my @math_list = get_math_list "12.3 4.56 .789";
foreach my $math (@math_list) {

  print $math."\n";
}




   

谢谢luoyong的热心帮助!.