求一条c# 正则表达式,来获取HTML标签的内容

比如:<div>我要的内容,<p>里面有其他标签和中文的</p>,我要的内容</div>要获取div里面的内容,正则表达式该如何写呢?求教... 比如:<div>我要的内容,<p>里面有其他标签和中文的</p>,我要的内容</div>
要获取div里面的内容,正则表达式该如何写呢?求教
展开
 我来答
匿名用户
2012-01-23
展开全部
按格式来.. 匹配位于 <div> <p> 或者 </p> </div> 或者 </p> <p> 或者 <div> </div> 之间的不包含尖括号符号的内容.不过这样匹配的文本不在同一个match里, 但是是确实可行的.
(?<=<div>)[^><]*(?=</div>)|(?<=<div>)[^><]*(?=<p>)|(?<=</p>)[^><]*(?=</div>)|(?<=</p>)[^><]*(?=<p>)

如果完全与你的格式相同的话那就简单了.. - -就是只有一个<p>的情况..
Regex r=new Regex(@"<div>(?<1>[^><]*)<p>[\s\S]*?</p>(?<2>[^><]*)</div>")
r.Replace(文本,"$1$2")
更多追问追答
追问
(?[^>[^><]*)是什么意思呢,1和2要填哪些文本?
追答
1和2是组名- -
下面的r.Replace(文本,"$1$2") 这个是使用捕捉到的组来替换...
你也可以换个组名... 比如
Regex r=new Regex(@"(?[^>[^>")
r.Replace(文本,"${我是组名1}${我是组名2}")

非纯数字的组名要用{}括起来- -

r.Replace会返回一个替换后的字符串,你看着处理,
我这里是把两个内容给连在一起了,,
匿名用户
2012-01-22
展开全部
只能分步走
一是得到Div中的内容
二是删除带有<P>标签的内容
追问
得到Div中的内容的正则表达式怎样写呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旁笑槐NH
2012-01-22 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2849万
展开全部
如果是通用的话用正则是没法解析的,你可以用htmlagilitypack这个开源组件把HTML转化成XML,这样就很好解析了。这个组件的项目在codeplex,网址就不发了,会被百度吃掉。google找下就有了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式