正则一向是我的弱势,今天有遇到一个问题:
我需要对一段HTML取需要的部分,如:
<div id="Title"><a href="/">Free Articles</a></div>
<h2>Free articles to be reprinted or published.</h2>
<div>sfdsfdsfdsfasfa</div>
<h2>afasfasfasf</h2>我想取Free articles to be reprinted or published这部分内容
不能用(?<=<h2>)(.*?)(?=<h2>)这种方式
我需要对一段HTML取需要的部分,如:
<div id="Title"><a href="/">Free Articles</a></div>
<h2>Free articles to be reprinted or published.</h2>
<div>sfdsfdsfdsfasfa</div>
<h2>afasfasfasf</h2>我想取Free articles to be reprinted or published这部分内容
不能用(?<=<h2>)(.*?)(?=<h2>)这种方式
解决方案 »
- c# 中 多线程 数字递减 在设置时间 准确结束
- 如何查找一个字符串里面有多少个豆号,且拼接成另外一个字符串
- WPF 环形Progress闪烁问题
- js 实现鼠标移动 切换画面
- C#窗体应用程序,怎么在Form1.cs外的源代码里更改Form1的属性?
- FastZip异常问题
- (Web征求想法)对很多表我们平时所操作的都是增、删、改,如果要抽象出来、做一个通用的()??
- 关于session丢失
- RapidTier 1.0 beta2 发布 [放分征求意见]
- 怎么样循环遍历Listview1的所有数据!
- winform 窗体属性修改后 运行效果不变
- 为什么ConfigurationManager.AppSettings.Count总是0?
System.Text.RegularExpressions.Match match2 = Regex.Match(原字符串, "Title.*?<h2>(?<value1>.*?)</h2>");取值
match2.Groups["value1"].Value注意 原字符串 中如有换行的要替换掉换行符
string str = @"<div id=""Title""><a href=""/"">Free Articles</a></div>
<h2>Free articles to be reprinted or published.</h2>
<div>sfdsfdsfdsfasfa</div>
<h2>afasfasfasf</h2>";
Regex reg = new Regex(@"(?<=<h2[^>]*?>)(?:(?!</?h2).)*");
Response.Write(reg.Match(str).Value);
//Free articles to be reprinted or published.
<h2>afasfasfasf</h2>
<div id="Title"><a href="/">Free Articles</a></div>
<h2>Free articles to be reprinted or published.</h2>
<div>sfdsfdsfdsfasfa</div>如果是这样的话,我想取Free articles to be reprinted or published.其实我想要的效果有点像信息采集器,可以灵活的自由设置采集规则
afasfasfasf
Free Articles
sfdsfdsfdsfasfa
总得有规则吧!
Free articles to be reprinted or published.
<div(*)>[内容]</div>
它就能取到内容,我现在这个项目就是想要这种效果。
没用过火车头。如果div内还内嵌有多层div,不知火车头能取到什么?
象这一类
abc*ssss{url}ddddd*bbb* 表示任意字符, {url} 就是符合普通url规则的正则,替换掉, * 再替换成任意字符。
生成任意正则很困难,但就某类 模式生成还是容易的。
开源网站上的spider,和火车头基本一样,你可以下载下来看下。
应该算是“表示层”的东西,不是真正的正则表达式在业务层需要将其修改为真正的正则,并进行查找,如何修改完全看你想得到什么。
这个有问题啊,如果我需要在"<h1 id=\"H1jobname\">"这里面匹配呢,如"<h1 id=\"H1jobname\"(*)>"