C#采用正则表达式截取HTML代码求助
如:一段HTML代码(百度首页一段代码为例)<Pid=nv><Ahref="http://news.baidu.com">新 闻</A><B>网 页<...
如:一段HTML代码(百度首页一段代码为例)
<P id=nv><A href="http://news.baidu.com">新 闻</A>
<B>网 页</B>
<A href="http://tieba.baidu.com">贴 吧</A>
<A href="http://zhidao.baidu.com">知 道</A>
<A href="http://mp3.baidu.com">MP3</A>
<A href="http://image.baidu.com">图 片</A>
<A href="http://video.baidu.com">视 频</A>
<A href="http://map.baidu.com">地 图</A></P>
求:1,把其中任意一段HTML截取出来,如<P id=nv> 和</P> 标签之间的HMTL代码,或者
以<A href="http://zhidao.baidu.com">知 道</A>开头,以<A href="http://video.baidu.com">视 频</A>结尾的中间的HTML截取出来。最终得到(<A href="http://mp3.baidu.com">MP3</A>
<A href="http://image.baidu.com">图 片</A>)
2.然后把截取的这段html代码的内容解析出来。如:最终得到(http://mp3.baidu.com 和MP3字符串)
注:正则表达式的代码不能写死,要灵和运用(输入任何头和尾能得到其中的HTML代码)。 展开
<P id=nv><A href="http://news.baidu.com">新 闻</A>
<B>网 页</B>
<A href="http://tieba.baidu.com">贴 吧</A>
<A href="http://zhidao.baidu.com">知 道</A>
<A href="http://mp3.baidu.com">MP3</A>
<A href="http://image.baidu.com">图 片</A>
<A href="http://video.baidu.com">视 频</A>
<A href="http://map.baidu.com">地 图</A></P>
求:1,把其中任意一段HTML截取出来,如<P id=nv> 和</P> 标签之间的HMTL代码,或者
以<A href="http://zhidao.baidu.com">知 道</A>开头,以<A href="http://video.baidu.com">视 频</A>结尾的中间的HTML截取出来。最终得到(<A href="http://mp3.baidu.com">MP3</A>
<A href="http://image.baidu.com">图 片</A>)
2.然后把截取的这段html代码的内容解析出来。如:最终得到(http://mp3.baidu.com 和MP3字符串)
注:正则表达式的代码不能写死,要灵和运用(输入任何头和尾能得到其中的HTML代码)。 展开
1个回答
展开全部
第一个要求
(?s)<P[^>]+>.+</P>(?-s)
你可以把P改成你任意想匹配的标签
第二个要求
<a[^>]+href="([^"]+)"\s*[^>]*>([^<]+)</a>
分组1是超链接地址,负责2是超链接的显示内容
取分组1可以用\1或者$1
取分组2可以用\2或者$2
具体使用\还是$,得看你的工具或者语言
(?s)<P[^>]+>.+</P>(?-s)
你可以把P改成你任意想匹配的标签
第二个要求
<a[^>]+href="([^"]+)"\s*[^>]*>([^<]+)</a>
分组1是超链接地址,负责2是超链接的显示内容
取分组1可以用\1或者$1
取分组2可以用\2或者$2
具体使用\还是$,得看你的工具或者语言
更多追问追答
追问
不知道楼上测试过没?我这儿没有通过。是否提供下例子。
以知 道开头,以视 频结尾的中间的HTML截取出来。最终得到(MP3
图 片)
把这段帮我提出来看看,希望提供代码。
追答
首先,我肯定测过,可以任意匹配一个html标签之间的内容。
例如你的p标签之间内容,或者a标签之间的内容。
不过,你要求的 【知 道开头,以视 频结尾的中间的HTML截取出来】
正则不是像你这样用的,这样匹配没有什么意义。
正则是为了尽可能方便文本的处理,不是什么需求都需要使用正则的。如果用了还增加了复杂度,那就完全没有必要了。
你这个根本就没有规律。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询