下面这个行不行呢? my $string = qq(abdfdafsdf1234sfdafdtegdd2345saste+-fsdfas578dsadfagsdfsd12322sdfs“ da”gfgerfg643fgfdsa); my $dig = ( $string =~ tr/\D/ /c ) ; print $dig ;
----- Original Message ----- From: "空格" <[email protected]> To: "PerlChina Mongers 讨论组" <[email protected]> Sent: Tuesday, December 15, 2009 3:41 PM Subject: [PerlChina] Re: 如何通过匹配获得一行中想要的所有值 > 最简单的实现: > my $string = qq(abdfdafsdf1234sfdafdtegdd2345saste+- > fsdfas578dsadfagsdfsd12322sdfs“ da”gfgerfg643fgfdsa); > my $i = 0; > my @num; > while ($string =~ m{\d+}g) { > $num[$i] = $&; > $i++; > } > $, = ' '; > print @num; > > $string字符串的大小取决于你机器的内存。如果它非常大,那么会很慢。或者你把它拆开来用循环分别找。 > > On 12月14日, 下午9时32分, zhihua zheng <[email protected]> wrote: >> 如题: >> >> 问题: 我有大量类似的字符串(如下),需要把里面的数字全都获取出来, 首先我们不知道每一行里面有多少个数字串,可能没有,可能有, 要的就是有的那些, >> (不能通过去除非数字的字符后剩下的作为值打印出来) >> >> abdfdafsdf1234sfdafdtegdd2345saste+-fsdfas578dsadfag >> sdfsd12322sdfs“ da”gfgerfg643fgfdsa >> .... >> >> 我希望得到的结果是 : >> >> 1234 2345 578 12322 643 >> >> 开动你的脑筋! 非常感谢了! > > -- > > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 > > 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 > 要取消订阅此网上论坛,请发送电子邮件至 > [email protected]。 > 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。 > > > -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
