请教一个Perl正则表达式
怎么识别出下面这些句子中的数字?注意,这些句子中的“、”的个数是不定的。怎么将它们一组一组地匹配出来(比如存入$1,$2,$3,...中)呢?
1、2、3、10、11路公交车
号码为13404320823、0812、1323、6826、1235、13404338290。
[解决办法]
如果除了顿号,都是数字,你完全可以:
- Perl code
my @array=split(/、/,$str);
[解决办法]
- Perl code
my $string = "号码为13404320823、0812、1323、6826、1235、13404338290";while($string =~ m/(\d+)/g){ print $1,"\n";}
[解决办法]
- Perl code
use strict;use warnings;my $string = "04、08、10号员工在2008、2009两年年表现突出。";my (@year,@mon);while ( $string =~ m/\b(\d{2})(..)/g){ my ($a,$b) = ($1,$2); if ($b =~ /^\d+$/) { push @year, join"",($a,$b); } else { push @mon,$a; }}print "@mon\n";print "@year\n";