| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:c++如何提取txt中的特定内容
只看楼主 加入收藏
cykiko
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-21
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
c++如何提取txt中的特定内容
用爬虫下载下来的txt文档里面包含太多其他东西,我现在想提取<title>   </title>之间的内容并把他们保存在另一个txt文档中,请问该如何解决?说说大体思路,谢谢
搜索更多相关主题的帖子: 东西 其他 如何 
2012-02-21 16:31
towhee
Rank: 2
来 自:石家庄火车站
等 级:论坛游民
威 望:1
帖 子:48
专家分:69
注 册:2010-8-8
收藏
得分:3 
大体思路你不是已经说了嘛,找到这两个标签就成了呗

最穷无非讨饭,不死终会出头
2012-02-21 17:28
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
试试这个正则表达试:
\<title\>([^<]*)\<\/title\>
第一个组就是要匹配的。


My life is brilliant
2012-02-21 17:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
这个表达式不行。
比如 <title><b>abc</b></title>这样的文本就不能匹配。
2012-02-21 21:21
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以前研究过,这样的文本其实不是太容易匹配。

一般的 * 量词都是贪心的,就是尽量多的匹配东西。如果使用的正是引擎支持憜性匹配量词(比如 perl 中的 *? 或者 vim 中的 \{-}),或者说是尽量少的匹配东西,也许可以考虑用 <tag>.*?<tag> 来匹配。
但是它对下面这类嵌套的文本不太好用:
<tag>abc<tag>def</tag>ghi</tag>
它会匹配红色的部分,但这可能不是我们想要的。

另一种方法得用诸如 perl 中的 (?=...) 或者 (?!...) 这样的表达式(在 vim 中是 \@= 和 \@!,虽然可读性好像差一点。)来匹配。不一定所有的正则引擎都支持这些功能。

不建议楼主用 c++ 做这种小东西。用用其它工具,可能更方便一点。
2012-02-21 21:44
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
如果楼主的文本里意外的情况不多,3楼的表达式就可以用。
2012-02-21 21:45
快速回复:c++如何提取txt中的特定内容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024529 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved