水无涯 发表于 2007-8-30 22:09

【求助】如何从文本文件中提取出自己需要的字段

由于工作需要,需要从一个文本文件中提取一个字段(数字)。不知道有没有这样的专门软件。处理文本的。正则表达式不熟悉呀。哪位xd帮一个忙。推荐一个软件或者想一个办法,谢谢。

举一个例子:
title="479832166"style="cursor:hand" id="479832166tableuin">
<tr>
<td><a href='#'   class="graynl" target="_blank"><IMGid="479832166img" height="16" src="http://imgcache.qq.com/group/web_face/s/0-2.gif" width="16" border="0" ></a></td>
<td style="padding-left:5px;" ><a href='#'   class="graynl" target="_blank">黄沙漫漫∞</a></TD><td><a href="http://479832166.qzone.qq.com"class="graynl" target="_blank"><IMG border=0 id="479832166qzoneflag" style="display:none" height="11" src="http://imgcache.qq.com/group/images/group09.gif" width="12"></a></td>
</tr>
</table>
<script>showuserinfo.SetUserInfoEvent(479832166, 276) </script></td>


我需要从这个文本里面提取title="479832166"这里面的这个数字:479832166。不知道该怎么弄。各位大虾支一个招呀!!!!!

river_s 发表于 2007-8-30 22:15

什么意思?搜索“title=”?然后看后面的数字?*.*lll

Hans 发表于 2007-8-30 22:38

貌似和QQ打交道啊,不知道具体是做什么的? 原来有人从网页搜索@类型的字符,随之垃圾邮件泛滥了 :D

mqkng 发表于 2007-8-30 22:47

如果有一定规律,则简单的写一个代码,用Office的VBA都很容易实现。

水无涯 发表于 2007-8-30 22:49

hans版主言重了。不像你想的那样。

另:river_s版主。是需要title="479832166"。这里面的数字


另外如何统一为文本添加相同的内容。例如:


1
2
3
4
5
如何在他们的后面统一添加222

添加后就变为:
1222
2222
3222
4222
5222

水无涯 发表于 2007-8-30 22:49

原帖由 mqkng 于 2007-8-30 22:47 发表 http://www.ibmnb.com/images/common/back.gif
如果有一定规律,则简单的写一个代码,用Office的VBA都很容易实现。


谢谢斑竹。我试试看

Ani 发表于 2007-8-30 22:51

找人写个程序,很简单的。

axcw 发表于 2007-8-30 22:53

用Unix的grep命令就可以。

cxcx 发表于 2007-8-30 22:59

原帖由 水无涯 于 2007-8-30 22:49 发表 http://www.ibmnb.com/images/common/back.gif
另外如何统一为文本添加相同的内容。例如:


1
2
3
4
5
如何在他们的后面统一添加222

添加后就变为:
1222
2222
3222
4222
5222
这贴的版主多哇……

正则替换这种功能好像很多文本编辑器都有,我用EmEditor
Replace的时候,Find: (^\d{1})$,Replace with: \1222
当然要选项里面勾上使用正则表达式搜索

softice616 发表于 2007-8-30 23:14

晕,只从一个文件里面提取啊……

给你个东西,珍藏好几年了,非常之好用啊,当年我从30多万个txt(网页爬来的会员资料)的html代码里面提取信息并做成了数据库,就是用这个做的,太NB了~~

我再赞一下做这个东西的人,呵呵。

水无涯 发表于 2007-8-31 00:21

原帖由 softice616 于 2007-8-30 23:14 发表 http://www.ibmnb.com/images/common/back.gif
晕,只从一个文件里面提取啊……

给你个东西,珍藏好几年了,非常之好用啊,当年我从30多万个txt(网页爬来的会员资料)的html代码里面提取信息并做成了数据库,就是用这个做的,太NB了~~

我再赞一下做这 ...

谢谢xd。

水无涯 发表于 2007-8-31 00:25

原帖由 cxcx 于 2007-8-30 22:59 发表 http://www.ibmnb.com/images/common/back.gif

这贴的版主多哇……

正则替换这种功能好像很多文本编辑器都有,我用EmEditor
Replace的时候,Find: (^\d{1})$,Replace with: \1222
当然要选项里面勾上使用正则表达式搜索


老大。好像有点复杂呀。有没有比较简单的。直接在后面追加的。因为可能每一行每一个数字的位数不一样。但是可以保证的是,每一行肯定只有一个数字。像这样

1
23
345
4
8462435213
2356
456


现在需要在每一行后面添加上一样的字符,不一定是数字。例如。统一加上china。得到的结果如下:

1china
23china
345china
4china
8462435213china
2356china
456china


实在是单位需要。没有办法。从文本中提取已经解决了。多谢各位xd的解救。

cxcx 发表于 2007-8-31 01:04

原帖由 水无涯 于 2007-8-31 00:25 发表 http://www.ibmnb.com/images/common/back.gif



老大。好像有点复杂呀。有没有比较简单的。直接在后面追加的。因为可能每一行每一个数字的位数不一样。但是可以保证的是,每一行肯定只有一个数字。像这样

1
23
345
4
8462435213
2356
456


...
每一行最后一位保证都是数字吗?那可以这样:
Find: (^\.*d{1})$,Replace with: \1china
把china换成你需要的就可以了

一点编程基础都不懂的话确实解释不清,或者你可以试试楼上xd推荐的工具

softice616 发表于 2007-8-31 01:14

原帖由 水无涯 于 2007-8-31 00:25 发表 http://www.ibmnb.com/images/common/back.gif



老大。好像有点复杂呀。有没有比较简单的。直接在后面追加的。因为可能每一行每一个数字的位数不一样。但是可以保证的是,每一行肯定只有一个数字。像这样

1
23
345
4
8462435213
2356
456


...

我要一朵10nb的小花。

word:



dongmai 发表于 2007-8-31 01:14

1、excel打开文本,数字都在A列,B列替换为china,另存为新文本;

2、用记事本打开新方本,将数字后面的空格+china替换为china。

Drifter 发表于 2007-8-31 01:20

其实后面加字, 用一般的文本编辑软件的宏可以比较方便地实现. 这样:

下一行
到行未
加东西
循环

Drifter 发表于 2007-8-31 01:20

上面用excel的想法也很好.

softice616 发表于 2007-8-31 01:23

寒啊,这么多方法了
我再来一个

dim TMP as integter

Private Sub Command1_Click()
tmp=replace(text1.text,Chr(13) + Chr(10),text2.text)
end sub

......

Drifter 发表于 2007-8-31 01:26

原帖由 softice616 于 2007-8-31 01:23 发表 http://www.ibmnb.com/images/common/back.gif
寒啊,这么多方法了
我再来一个

dim TMP as integter

Private Sub Command1_Click()
tmp=replace(text1.text,Chr(13) + Chr(10),text2.text)
end sub

......

这种方法都需要建立一个执行环境,,,,对于没有基础的人来说, 建立环境比登天还难...

softice616 发表于 2007-8-31 01:28

原帖由 Drifter 于 2007-8-31 01:26 发表 http://www.ibmnb.com/images/common/back.gif


这种方法都需要建立一个执行环境,,,,对于没有基础的人来说, 建立环境比登天还难...



其实用好了office那套东西,基本上除了批量操作的事情,都可以做好。

玩转了office的高手,批量照样好用。

Drifter 发表于 2007-8-31 01:29

原帖由 softice616 于 2007-8-31 01:28 发表 http://www.ibmnb.com/images/common/back.gif




其实用好了office那套东西,基本上除了批量操作的事情,都可以做好。

玩转了office的高手,批量照样好用。

同意. office可以用博大精深来形容.

softice616 发表于 2007-8-31 01:30

原帖由 Drifter 于 2007-8-31 01:29 发表 http://www.ibmnb.com/images/common/back.gif


同意. office可以用博大精深来形容.


微软干的最大的好事就是这个了,哈哈!

office这东西我觉得是世界上同类里最好的软件了。

Drifter 发表于 2007-8-31 01:34

原帖由 softice616 于 2007-8-31 01:30 发表 http://www.ibmnb.com/images/common/back.gif



微软干的最大的好事就是这个了,哈哈!

office这东西我觉得是世界上同类里最好的软件了。

其实windows的功劳还是巨大的, 这是不可否认的.

softice616 发表于 2007-8-31 01:38

原帖由 Drifter 于 2007-8-31 01:34 发表 http://www.ibmnb.com/images/common/back.gif


其实windows的功劳还是巨大的, 这是不可否认的.


对,微软为了普及office,只好做出了第二大贡献的windows平台。

mqkng 发表于 2007-8-31 01:42

花了一点时间,以我原来其他项目修改给你做了一个,应该符合你的要求



说明:
1、你最先说明是可追加为“数字”,我理解为数字做的。如果你要添加为字符串“如CHINA”,就只有生成出来后,在WORD中替换了。
实在需要我可以再给你修正。估计要我有空后才能,最近工作太忙。

2、字符最短暂没有做。需要以后加吧

图一为,你代码转换的结果
图二为,随意代码转换的结果。

Drifter 发表于 2007-8-31 01:42

原帖由 softice616 于 2007-8-31 01:38 发表 http://www.ibmnb.com/images/common/back.gif



对,微软为了普及office,只好做出了第二大贡献的windows平台。

也是一个不错的解释

Drifter 发表于 2007-8-31 01:43

楼上的高人真好人啊

mqkng 发表于 2007-8-31 01:45

另:如果只有单一数字不作处理,如:123456876874643413

mqkng 发表于 2007-8-31 01:47

原帖由 Drifter 于 2007-8-31 01:43 发表 http://www.ibmnb.com/images/common/back.gif
楼上的高人真好人啊


今天看了他的要求,感觉很久没有为51NB朋友服务了,所以花了点时间,做成这个样子了。。。。

Drifter 发表于 2007-8-31 01:48

原帖由 mqkng 于 2007-8-31 01:47 发表 http://www.ibmnb.com/images/common/back.gif



今天看了他的要求,感觉很久没有为51NB朋友服务了,所以花了点时间,做成这个样子了。。。。

还是要赞一下的.
页: [1] 2
查看完整版本: 【求助】如何从文本文件中提取出自己需要的字段