读书人

请问一个Perl正则表达式

发布时间: 2012-02-17 17:50:42 作者: rapoo

请教一个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"; 

读书人网 >perl python

热点推荐