读书人

怎么提取1行中所有数字所有数字由空

发布时间: 2012-04-17 15:06:33 作者: rapoo

如何提取1行中所有数字,所有数字由空格分开
如题,
整个文件只有一行,此行中包含的信息类似如下:
22099 23508 20405 21356 18607 4305 2978 24209 22011 20328 2976 19522 4256 21766 18927 20652 19241 21885 2974 2972 19508 2970 21915 20200 5155 25611 20413 8577 20753 2980 20510 19170 25703 19092 21235 2968 20483 2962
我得目的是把这些信息逐行取出,
生成文件如下
22099
23508
20405
。。。

[解决办法]
Perl:

my $line = '22099 23508 20405 21356 18607 4305 2978 24209 22011 20328 2976 19522 4256 21766 18927 20652 19241 21885 2974 2972 19508 2970 21915 20200 5155 25611 20413 8577 20753 2980 20510 19170 25703 19092 21235 2968 20483 2962 ';

print "$1\n " while ($line =~ /(\d+)/g);
#print "$_\n " for split /\s+/, $line;#或者这样也可以

Python:

import re

line = '22099 23508 20405 21356 18607 4305 2978 24209 22011 20328 2976 19522 4256 21766 18927 20652 19241 21885 2974 2972 19508 2970 21915 20200 5155 25611 20413 8577 20753 2980 20510 19170 25703 19092 21235 2968 20483 2962 '

for n in re.findall(r '\d+ ', line):
print n



[解决办法]
$filename = shift;#输入文件名

open(FILE,$filename);

$line = <FILE> ;

@numbers = split(/\s+/,$line);

for($i=0;$i <@numbers;$i++)
{
print ( "$number[$i]\n ");
}

close(FILE);
---------------------------------------------------

顺便赞一下楼上的。写的比较牛。

读书人网 >perl python

热点推荐