求一条c# 正则表达式,来获取HTML标签的内容
比如:<div>我要的内容,<p>里面有其他标签和中文的</p>,我要的内容</div>要获取div里面的内容,正则表达式该如何写呢?求教...
比如:<div>我要的内容,<p>里面有其他标签和中文的</p>,我要的内容</div>
要获取div里面的内容,正则表达式该如何写呢?求教 展开
要获取div里面的内容,正则表达式该如何写呢?求教 展开
3个回答
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")
(?<=<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中的内容
二是删除带有<P>标签的内容
追问
得到Div中的内容的正则表达式怎样写呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是通用的话用正则是没法解析的,你可以用htmlagilitypack这个开源组件把HTML转化成XML,这样就很好解析了。这个组件的项目在codeplex,网址就不发了,会被百度吃掉。google找下就有了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询