用正则表达式提取网页内容--选秀榜selectop.com网站内容管理系统之五

      初用正则式是研究PHP下的一个小蜜蜂采集器beecollector,可以说正则式是PHP的专利。要模式匹配就要用到它。

      delphi下有一个组件PerlRegEx,功能与PHP差不多。最新的开源版本可从http://www.regular-expressions.info/delphi.html下下载,发布要加上pcrelib.dll。

     串:   '(.+?)'   是匹配所有字符,不包括回车等
      串:      '([\S\s]+?)'  匹配所有,用于内容匹配有效,只到定义开始,结尾串,就可以找到所需要的。

        DELPHI读取网页源文件和获取字符串,一文中http://www.blogbus.com/public/tb.php/5090525/42810637/5b12af31ab70d28d43bcd21cd63f9b55
用到字符串比较,也可行,但循环匹配定位比较麻烦。

        用全匹配代替字符串比较,可以较简单解决这一矛盾。简要代码如下:
      //正则表达式
      sStart:= regex1.EscapeRegExChars(qry1.fieldbyname('beginstr').asstring);
      sEnd:= regex1.EscapeRegExChars(qry1.fiebyname('endstr').asstring);
      regex1.regex:= sStart + '([\S\s]+?)' + sEnd ;
      regex1.Compile;

        perlReg.start的处理,做了一个测试,发现手工处理start,再进行循环匹配,提示错误。还是用回matchagain,进行循环匹配,以完成整个网页的处理。

      选秀榜网站www.selectop.com 下的博客榜,用到以上方法,采集出博文的连接,标题。
posted @ 2009-09-19 12:28  网销通  阅读(821)  评论(0编辑  收藏  举报