首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

怎么提取1行中所有数字,所有数字由空格分开

2012-04-17 
如何提取1行中所有数字,所有数字由空格分开如题,整个文件只有一行,此行中包含的信息类似如下:220992350820

如何提取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);
---------------------------------------------------

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

热点排行