URL链接提取器

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:qq407606015
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  2008年第6期,挑战题目4是“URL链接提取器”:现在有放在不同文件夹下的一堆文件(多种类型),现在我要提取这些文件夹下TXT文件中的字符,制作两个文本:
  文件一,所有包含有URL链接的整段文字。
  文件二,所有URL链接的字符。
  要提取一些像URL链接这样的有一定规律性的文字时,使用正则表达式是最合适的。可是我们如何使用一个正则表达式来表示所有的URL地址呢?在EmEditor中依次选择“工具→所有配置属性”菜单项,在“链接”标签下,我们可以看到EmEditor识别URL链接的两个规则:
  ①如果文字是以http://、https://、ftp://、file:和mailto:开始,并且紧随其后的文字是“识别这些字符”中的定义的字符时,它们将会被看做是一个链接。
  ②如果链接最后的一个文字是在“不允许在行末的字符”中所定义的字符时,则不应将它当做是链接的一部分。
  有了这2个识别URL链接的规则,我们就能使用以下两种方法,提取TXT文件中的URL链接了。
  
  方法一:使用EmEditor+宏
  这个方法主要是使用文本编辑工具EmEditor来实现的。
  1.生成文件一
  在EmEditor中选择“搜索→在文件中查找”菜单,在随后弹出的对话框里,在“查找”文本框处输入“((https?:\/\/)|(ftp:\/\/)|(file:)|(mailto:))[!#%&,-:;=@_~\d\w\$\'\(\)\*\+\.\/\?\^\\]+”(不含外侧的双引号,下同)。在“文件类型”处输入“*.txt”。在“在文件夹”处输入要搜索的文件夹的路径。同时要选中“查找子文件夹”和“使用正则表达式”这两个选项。最后点击“查找”按钮(见图1)。
  


  图1
  
  搜索完毕后,所有包含有URL链接的整段文字就显示在结果中了,我们可以将其保存为文件一。
  
  2.生成文件二
  打开EmEditor,输入以下的代码,并将其扩展名改为VBEE,如“GetURL.vbee”。
  strURLS = ""
  Set regEx = New RegExp
  regEx.Pattern = "((https?:\/\/)|(ftp:\/\/)|(file:)|(mailto:))[!#%&,-:;=@_~\d\w\$\'\(\)\*\+\.\/\?\^\\]+"
  regEx.IgnoreCase = True
  regEx.Global = True
  
  document.selection.SelectAll '选中整个文档。
  Set colURLS = regEx.Execute(document.selection.Text) '查找文档中所有的URL。
  For Each objURL In colURLS
  strURLS = strURLS & TailTrim(objURL.Value) & vbcrlf
  Next
  document.selection.Text = strURLS '将所有的URL写入当前文档。
  
  Function TailTrim(strURL)
  regEx.Pattern = "([!:;,\'\(\)\.\?]*)$"
  Set colMatches = regEx.Execute(strURL)
  TailTrim = Left(strURL, colMatches(0).FirstIndex)
  End Function
  在EmEditor中选择“宏→选择”菜单,然后选择上面所创建的GetURL.vbee文件。
  最后,打开刚刚生成的“文件一”,点击“宏→运行 GetURL.vbee”菜单项。这样,搜索结果就会仅包含URL链接,我们只需要将结果另存为“文件二”即可。
  
  方法二:使用VBS脚本
  如果大家嫌方法一不够方便也没关系,我还编写了一个VBS脚本,可以搜索TXT文件中的URL链接,并将它们提取到指定的文件中。使用方法很简单:运行SearchURL.vbs文件,然后选择要搜索的文件夹就可以了(见图2)。搜索完毕后,结果会被保存到脚本文件所在目录下的“File1.txt”和“File2.txt”中。
  


  图2
  
  本文所说的宏文件GetURL.vbee及脚本文件SearchURL.vbs均可直接下载:http://work.newhua.com/cfan/200809/Code.rar,快车代码:CF0809WJTZ01。
其他文献
在台式机和笔记本电脑中,包括照片、音乐和视频在内的数字内容正呈现持续性增长。越来越多的消费者开始关注数据保护问题,而且想要寻求一个简单的解决方案。区别于普通外置硬盘,具有专业性的My Book系列应运而生,今天给大家带来的就是西部数据刚刚发布的My Book Mirror Edition(以下简称 MBME)。  方便简单的设计。西部数据提供了直观易用的 RAID向导软件,可以对RAID 设置轻松
期刊
MP3、MP4、PSP、手机等等,现在的移动设备真是数不胜数,无论是上班路上还是漫漫旅途,通过它们就可以随时看看电影、听听音乐了。但是,我们需要消费的大量视听内容从哪里找?别着急,下面让我采访一下各位小编,看看他们有什么高招。    Etta:YouTube,了解世界的一只眼  YouTube上有些老外拍的视频还是蛮有创意的,不过YoutTube网站很不稳定,所以它上面的精彩视频我总是下载下来看。
期刊
十多年来我所有的CFan都不舍得卖掉,不过确实是太多了!能帮我把它们换成合订本吗?从最早的DOS到现在的Vista,还有编程知识,CFan是我最好的老师!    我是一名电脑维修人员,看《电脑爱好者》有10多年了。  高中时我就有了计算机,16000元的电脑啊,家里也不富裕,父母想都没有想就给我买了回来,我好高兴!当时因为没有什么老师,我在书摊上看到了《电脑爱好者》,一下就爱上了它。1997年时的
期刊
压力让我不舒服  突然发现,周围很多人都在说:“现在生活太紧张了,我压力好大”,但我们说的“压力”又很模糊,真要问你压力从何而来,大到什么程度,你可能又说不太清楚。压力对IT人来说不可避免,那么有没有一个公式能计算出压力的大小?当遭遇过大的压力时我们应该如何来应对?    李:其实是有这种测试指数的,比如结婚、离婚、工作变迁等等,每一项生活中的事情也有一些指标和分数。其中丧失亲人分数是最高的。很多
期刊
摘要:目的:观察采用二甲双胍联合吡格列酮治疗2型糖尿病的疗效。方法:选择134例2型糖尿病患者随机分为对照组与联合用药组,各67例,对照组给予二甲双胍治疗,联合用药组给予二甲双胍+吡格列酮治疗,比较两组的疗效。结果:联合用药组总有效率92.5%,显著高于对照组76.1%(P0.05,具有可比性。  1.2治疗方法  对照组给予二甲双胍(国药准字H20040154,青岛黄海制药有限责任公司)治疗,每
期刊
林爽,清华大学计算机系大四学生,他的出现非常偶然。大背景是Google在去年第一次与中国内地的高校合作“云”计划就选择了清华大学。为了采访,我试探着在水木清华BBS的Google版上发了一个寻找参加该计划的学生的帖子,一天之后,我的站内邮箱里就收到了林爽的回信。  非常顺利,我与林爽在清华FIT大楼的实验室中见面了。他递过来一张据说在一家美国网站上花7美元就能印250张的、可以自己定制的名片,让我
期刊
摘要:目的:对老年肺结核患者的临床特点和治疗方案分析。方法:临床选取我疾控中心2014年1月-2015年1月实施治疗的100例老年肺结核患者,将其分成两组,其中对照组患者实施2HREZ/4HR抗肺结核药物治疗,观察组患者在2HREZ/4HR抗肺结核药物治疗的基础上增加黄芪注射液治疗,对比分析两组患者治疗结果。结果:100例患者的临床表现主要为咳嗽、咳痰、乏力、发热、胸痛。其中观察组患者的临床症状改
期刊
我是一名老师,订阅《电脑爱好者》有一年多的时间了。在她的影响下,我学到了很多电脑知识,也积极向各种IT杂志投稿,并且常常被采用,这让我体会到了很多快乐。《电脑爱好者》是我永远的良师益友!    在2007年21期第62页有一篇《一笔一画学汉字》文章,讲的是用PPT制作按笔画书写汉字的特效,按照文章所讲的方法,除了极少数没有交叉关系的汉字外(比如“三”、“小”、“心”等),其他汉字制作出来的效果都不
期刊
微软 & 雅虎  近日,微软收购雅虎又出风波,AOL美国在线也要掺和进来。分析师用调侃的语言分析了搀和进这次收购的五家国际大公司目前的心态:“雅虎说我有的是选择,微软说选择权不在你而在你的股东”,新闻集团认为三方合作才是最佳方案,而Google的态度是用广告合作帮雅虎挣钱,在他们之后,实力稍弱的时代华纳AOL也有打动雅虎的理由,它能给雅虎自由。    百度 & 中国网通  近日,百度宣布与中国网通
期刊
摘要:目的:观察合并无症状高尿酸血症的冠脉综合征患者在常规冠心病二级预防用药基础上联合降尿酸治疗对心绞痛发作及心血管事件的影响。方法:选择门诊及住院的合并无症状高尿酸血症的急性冠脉综合症患者,分2组,实验组在进行规范冠心病2级预防用药基础上联合对患者进行降尿酸治疗,而对照组仅进行规范冠心病2级预防用药治疗,观察比较半年后两组患者间疗效差异。结果:药物降尿酸组心绞痛发作改善更明显。结论:在急性冠脉综
期刊