h2R的想法已经有了很长时间了,今天终于开始动手。
主要用的是文本匹配:


            XmlNode channles=root.FirstChild;

            Regex r;
            Match m;

            r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))\\s+\\S+\\s+title\\s*=\\s*(?:\"(?<2>[^\"]*)\"|(?<2>\\S+))",RegexOptions.IgnoreCase|RegexOptions.Compiled);
            for (m = r.Match(str); m.Success; m = m.NextMatch()) 
            {
            //    rst+="link=" + m.Groups[1] + "\ntitle=" + m.Groups[2]+"\n";
                XmlElement oitem=xml.CreateElement("item");
                XmlElement o=xml.CreateElement("title");
                o.InnerText=m.Groups[2].Value;
                oitem.AppendChild(o);
                
                o=xml.CreateElement("link");
                o.InnerText=m.Groups[1].Value;
                oitem.AppendChild(o);


                channles.AppendChild(oitem);
            }
比如str=     <tr><td><tr height=19><td align=center width=14><img src=/icons/info/dot_h.gif width=5 height=5></td><td align=left><a href=/zzh/30630.nsf/(AllDocsByUnid)/C81ECBA70F9A8795C82570990031DE28?opendocument target=_blank title="IC卡学生证及纸制学生证招领名单">IC卡学生证及纸制学生证招领名单</a></td><td align=right width=80><font color=#000066>10-13 18:04</font></td></tr><tr height=19><td align=center width=14><img src=/icons/info/dot_h.gif width=5 height=5></td><td align=left><a href=/zzh/30630.nsf/(AllDocsByUnid)/81BF13BCCAB992A1C825709900300465?opendocument target=_blank title="关于“SRT计划项目优秀奖”申报的通知">关于“SRT计划项目优秀奖”申</a></td><td align=right width=80><font color=#000066>10-13 17:44</font></td></tr><tr height=19><td align=center width=14><img src=/icons/info/dot_h.gif width=5 height=5></td><td align=left><a href=/zzh/30630.nsf/(AllDocsByUnid)/713C777073ED05DBC8257099002FE71B?opendocument target=_blank title="新一轮SRT立项申请通知">新一轮SRT立项申请通知</a></td>

正则表达式如是解析:
1、href\\s*=\\s*
匹配href,其后面的=两侧有没有空格、有几个空格都可以。
2、(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))
摘取数据1,即link,其两侧有没有引号都可以。
3、\\s+\\S+\\s+
匹配至少一个空各,紧接着至少一个非空格,紧接着至少一个空各。
其实匹配的是 target=_blank

正在继续作。
发现正则表达式太强了,简直就是文本处理的SQL,比SQL还强!
现在觉得,不知自己是为了实现h2R服务而学习Regex,还是为了学习Regex而拿h2R服务做练习。
都挺好。

转载于:https://www.cnblogs.com/civ3/archive/2005/10/16/256119.html

用正则表达式作html2RSS服务相关推荐

  1. 服务发现框架选型,Consul还是Zookeeper还是etcd

    https://www.servercoder.com/2018/03/30/consul-vs-zookeeper-etcd/ 背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太 ...

  2. [译] 基于事件流构建的服务

    [译] 基于事件流构建的服务 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 原文:https://www.confluent.i ...

  3. disconf(二):服务端使用总结

    1.服务端原理 客户端启动,把配置文件,配置项存到仓库,等到服务端启动,从服务端拉取数据:服务端更新,则通过zk通知客户端,客户端知道更新后,会从服务端拉取最新的配置文件,如果更新的是redis配置, ...

  4. 第6章 服务模式 Service Interface(服务接口)

    Service Interface(服务接口) 上下文 您正在设计企业应用程序,并且需要能够通过网络使用其部分功能.此功能需要能够被各类系统使用,因此互操作性是设计的重要方面.除互操作性之外,可能还需 ...

  5. 关于服务网关的几个问题

    本文来说下关于服务网关的几个问题 文章目录 什么是服务网关 服务网关的作用 Zuul Gateway 本文小结 什么是服务网关 随着微服务的不断增多,不同的微服务一般会有不同的网络地址,而外部客户端可 ...

  6. 【JAVA SE】第十一章 正则表达式、包装类和BigDecimal

    第十一章 正则表达式.包装类和BigDecimal 文章目录 第十一章 正则表达式.包装类和BigDecimal 一.正则表达式 二.包装类 1.概述 2.装箱与拆箱: 3.基本数据和包装类之间的转换 ...

  7. javascript11位手机号码正则表达式

    2014年12月24日15:11:24  天气晴 大概是22号星期一的时候,我去面试了一家公司,当我看到"请写出11位手机号码正则表达式"的时候,感觉整个人都有点懵了,后来在网上看 ...

  8. 正则表达式之数字验证

    博客地址:http://www.cnblogs.com/zhuzhenwei918/p/6202932.html 正则表达式之数字验证 第一部分:数值验证 1.验证只包含数字.指定长度(N)的字符串 ...

  9. ntp 服务 --Centos

    1.概述: 名字:ntp服务 功能:实战配置NTP服务器为内网服务器同步时间. 配置NTP客户端同步时间. 原理:NTP ( Network Time Protocol ,网络时间协议)是用来使计算机 ...

最新文章

  1. Mysql 索引 事物
  2. 逆向行驶!数据结构双向链表DoubleLinkedList,Java实现增删改查
  3. AEAP的完整形式是什么?
  4. CORS - 引入预检请求的动机是什么?
  5. 如何在iOS地图上高效的显示大量数据
  6. html php插入百度地图定位
  7. MAC OS X 技术内幕 学习笔记之一 MAC OS的变迁
  8. pm模式 raid_Adaptec RAID PM8060 用户手册.pdf
  9. 计算机无法启动打印服务,电脑重启print spooler服务无法启动怎么处理
  10. Excel---饼图美化与ppt图表
  11. 提示非标准语法;请使用 ““ 来创建指向成员的指针
  12. 服务器关机 正在注销,Win7系统关机一直卡在正在注销如何解决
  13. IOS 应用运行环境理解
  14. POI处理Excel中公式不能自动计算出来的问题
  15. 为此计算机上所有用户安装此加载项,win7打开特定网站提示“控件无法安装,windows已阻止此软件因为无法验证发行者”怎么办...
  16. 引领云原生发展浪潮 阿里云开启云原生大规模落地元年
  17. 用ubuntu的使用习惯使用windows (by quqi99)
  18. 命令Javascript控制台
  19. 代码阅读工具学习总结
  20. Mysql时间格式转换整理

热门文章

  1. Cookie、Session、Token那点事儿
  2. JIT编译器杂谈#1:JIT编译器的血缘(一)
  3. java 8大happen-before原则超全面详解
  4. ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能
  5. 高等数学:第十二章 微分方程(2)一阶线性非齐次微分方程、全微分方程、可降阶的微分方程
  6. CVPR14与图像视频检索相关的论文
  7. 编程之美-数字哑谜和回文方法整理
  8. MATLAB语言中的关系与逻辑运算
  9. 【python图像处理】直线和曲线的拟合与绘制(curve_fit()详解)
  10. 在php的yii2框架中整合hbase库