用正则表达式作html2RSS服务
主要用的是文本匹配:
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);
}
正则表达式如是解析:
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服务相关推荐
- 服务发现框架选型,Consul还是Zookeeper还是etcd
https://www.servercoder.com/2018/03/30/consul-vs-zookeeper-etcd/ 背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太 ...
- [译] 基于事件流构建的服务
[译] 基于事件流构建的服务 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 原文:https://www.confluent.i ...
- disconf(二):服务端使用总结
1.服务端原理 客户端启动,把配置文件,配置项存到仓库,等到服务端启动,从服务端拉取数据:服务端更新,则通过zk通知客户端,客户端知道更新后,会从服务端拉取最新的配置文件,如果更新的是redis配置, ...
- 第6章 服务模式 Service Interface(服务接口)
Service Interface(服务接口) 上下文 您正在设计企业应用程序,并且需要能够通过网络使用其部分功能.此功能需要能够被各类系统使用,因此互操作性是设计的重要方面.除互操作性之外,可能还需 ...
- 关于服务网关的几个问题
本文来说下关于服务网关的几个问题 文章目录 什么是服务网关 服务网关的作用 Zuul Gateway 本文小结 什么是服务网关 随着微服务的不断增多,不同的微服务一般会有不同的网络地址,而外部客户端可 ...
- 【JAVA SE】第十一章 正则表达式、包装类和BigDecimal
第十一章 正则表达式.包装类和BigDecimal 文章目录 第十一章 正则表达式.包装类和BigDecimal 一.正则表达式 二.包装类 1.概述 2.装箱与拆箱: 3.基本数据和包装类之间的转换 ...
- javascript11位手机号码正则表达式
2014年12月24日15:11:24 天气晴 大概是22号星期一的时候,我去面试了一家公司,当我看到"请写出11位手机号码正则表达式"的时候,感觉整个人都有点懵了,后来在网上看 ...
- 正则表达式之数字验证
博客地址:http://www.cnblogs.com/zhuzhenwei918/p/6202932.html 正则表达式之数字验证 第一部分:数值验证 1.验证只包含数字.指定长度(N)的字符串 ...
- ntp 服务 --Centos
1.概述: 名字:ntp服务 功能:实战配置NTP服务器为内网服务器同步时间. 配置NTP客户端同步时间. 原理:NTP ( Network Time Protocol ,网络时间协议)是用来使计算机 ...
最新文章
- Mysql 索引 事物
- 逆向行驶!数据结构双向链表DoubleLinkedList,Java实现增删改查
- AEAP的完整形式是什么?
- CORS - 引入预检请求的动机是什么?
- 如何在iOS地图上高效的显示大量数据
- html php插入百度地图定位
- MAC OS X 技术内幕 学习笔记之一 MAC OS的变迁
- pm模式 raid_Adaptec RAID PM8060 用户手册.pdf
- 计算机无法启动打印服务,电脑重启print spooler服务无法启动怎么处理
- Excel---饼图美化与ppt图表
- 提示非标准语法;请使用 ““ 来创建指向成员的指针
- 服务器关机 正在注销,Win7系统关机一直卡在正在注销如何解决
- IOS 应用运行环境理解
- POI处理Excel中公式不能自动计算出来的问题
- 为此计算机上所有用户安装此加载项,win7打开特定网站提示“控件无法安装,windows已阻止此软件因为无法验证发行者”怎么办...
- 引领云原生发展浪潮 阿里云开启云原生大规模落地元年
- 用ubuntu的使用习惯使用windows (by quqi99)
- 命令Javascript控制台
- 代码阅读工具学习总结
- Mysql时间格式转换整理
热门文章
- Cookie、Session、Token那点事儿
- JIT编译器杂谈#1:JIT编译器的血缘(一)
- java 8大happen-before原则超全面详解
- ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能
- 高等数学:第十二章 微分方程(2)一阶线性非齐次微分方程、全微分方程、可降阶的微分方程
- CVPR14与图像视频检索相关的论文
- 编程之美-数字哑谜和回文方法整理
- MATLAB语言中的关系与逻辑运算
- 【python图像处理】直线和曲线的拟合与绘制(curve_fit()详解)
- 在php的yii2框架中整合hbase库