WINFORM中用正则表达式来解析HTML

WINFORM中用正则表达式来解析HTML,第1张

我再补充一下哈,以你的描述。因为在取的目标字符串里面含有换行符,所以

楼上那位中的"."应该换成"[\s\S]",意思是取任意字符。"."不包含换行,所以匹配会失败

再给你提供一个我遇到这样情况时的思路哈,在多数情况下,尤其是在要取的内容里面又含有开始或者结尾标志时~~这样的情况一般采取几种方法

1.分步剥皮,也就是用多次匹配。一次次往下传递,剥开一层前后减去几个字符。直到找到自己想要的东西。。

2.预计内容长度,也就是用{min,max}的方法估计一个内容长度。。这种方法适用与抓取字符串比较固定长度的。

3.还有就是准确找到开始、目标标记了,这里找开始结束标记不是直接打开源代码看的,是你调试时从程序里面获取到的源代码中看。。其中包含了退格、换行等标记。。一般都能找到比较特殊点的开始和结束标记的

假设我们要获取下面html标签中的内容:

第一段是获取 <p></p>标签内部的数据,第二个是获取 <p><span></span></p>标签中的数据,其中span标签中有style属性值。

使用过正则表达式的同学肯定知道,上面两种情况其实都是一种情况,我们要获取的是 尖括号括起来的一对标签 中间的数据,起始标签形如<x>,结束标签形如</x>,这里的x表示的html标签。

此外,我们还需要考虑起始标签中包含style的数据,另外特殊的 <br/>标签,对实际获取数据无意义,也需要过滤掉。

通过上面的分析,我们可以如下正则表达式:

在使用正则表达式处理之前,我们先对数据进行预处理,比如style和

标签:

针对多个标签嵌套的情况进行处理,比如 <p><span style="white-space: normal">王者荣耀</span></p>,在经过预处理和正则匹配的后结果是 <span>王者荣耀 ,需要手工移除掉前面的起始标签,对应的方法如下:

测试方法如下:

output:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6275393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存