正则表达式 截取一段html中某个textarea中的所有内容

cookie_fei 2012-11-08 10:48:13
比如我现在把百度首页中的所有html内容读取到一个字符串中,想在想截取
<textarea id = "nav_data" style="display:none">
..</textarea> 这个标签中的所有内容,

我写的截取用的正则表达式代码如下:
string regex = @"<textarea\sid\s=\s\""nav_data\"".*?</textarea>";
string href = System.Text.RegularExpressions.Regex.Match(HtmlString, regex, System.Text.RegularExpressions.RegexOptions.Multiline).Value;

接收用href 为什么一直为空。
求高手
...全文
496 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lipeinet 2014-03-10
  • 打赏
  • 举报
回复
你怎么弄出来的哥们求解
游离失所 2012-11-08
  • 打赏
  • 举报
回复
对了...我是用正则表达式测试器测试的... 你直接复制vs肯定编译不过的..你自己转义一下
游离失所 2012-11-08
  • 打赏
  • 举报
回复
string str = Regex.Match(yourstr,@"<textarea id[ ]*=[ ]*"[\w\W]*?" style="[\w\W]*?">([\w\W]*?)</textarea>").Groups[1].Value;
例如<textarea id = "nav_data" style="display:none">123123</textarea> 获取的是123123
天下如山 2012-11-08
  • 打赏
  • 举报
回复

汗 好长没写 悲剧 再次修改 
(?is)<textarea.*?>.*?<\/textarea>
天下如山 2012-11-08
  • 打赏
  • 举报
回复

多了空格 修改:
^<textarea.*?>.*?<\/textarea>$
dalmeeme 2012-11-08
  • 打赏
  • 举报
回复
用Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");
天下如山 2012-11-08
  • 打赏
  • 举报
回复

^<textarea .*?>.*?<\/textarea>$
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
是不是我的正则表达式写错了,我想把整个textarea 标签包括其里面的内容一起截取出来。
dalmeeme 2012-11-08
  • 打赏
  • 举报
回复
嗯 不用谢!
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
to dalmeeme 非常感谢你的帮助。
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
引用 17 楼 dalmeeme 的回复:
引用 12 楼 cookie_fei 的回复: quote=引用 11 楼 dalmeeme 的回复:] 我给你的Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");中怎么会编译也通不过?str是字符串变量,改成你自己的啊。 [
我问你:Match方法返回的是什么类型,而你用什么类型接……[/quote] 改了一下,取到值了。 多谢你了。
dalmeeme 2012-11-08
  • 打赏
  • 举报
回复
string r = Regex.Match(HtmlString, @"(?is)<textarea id=""nav_data"".*?>.*?</textarea>").Value;
路人乙e 2012-11-08
  • 打赏
  • 举报
回复
test
dalmeeme 2012-11-08
  • 打赏
  • 举报
回复
引用 12 楼 cookie_fei 的回复:
quote=引用 11 楼 dalmeeme 的回复:] 我给你的Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");中怎么会编译也通不过?str是字符串变量,改成你自己的啊。
[[/quote] 我问你:Match方法返回的是什么类型,而你用什么类型接受的?编辑器有提示的,你自己看下就知道了。
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
改了试了一下,好像没有截取到内容
游离失所 2012-11-08
  • 打赏
  • 举报
回复
引用 13 楼 cookie_fei 的回复:
如果直接传给 一个字符串的话,出现下面错误
你要拿值的话..把中间的内容用()括起来..然后.groups[1].value
游离失所 2012-11-08
  • 打赏
  • 举报
回复
引用 12 楼 cookie_fei 的回复:
quote=引用 11 楼 dalmeeme 的回复:] 我给你的Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");中怎么会编译也通不过?str是字符串变量,改成你自己的啊。
[[/quote] 兄弟..你的Match改成Matches
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
如果直接传给 一个字符串的话,出现下面错误
cookie_fei 2012-11-08
  • 打赏
  • 举报
回复
quote=引用 11 楼 dalmeeme 的回复:]
我给你的Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");中怎么会编译也通不过?str是字符串变量,改成你自己的啊。[/quote]

[
dalmeeme 2012-11-08
  • 打赏
  • 举报
回复
我给你的Regex.Match(str,@"(?is)<textarea id=""nav_data"".*?>.*?</textarea>");中怎么会编译也通不过?str是字符串变量,改成你自己的啊。
加载更多回复(3)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧