C#正则表达式提取一个div的内容

标签 c# regex

我看过我的一些相关问题,我试过了,但没有用。 我想将一个 div 中的内容与 ID 为“thumbs”的内容相匹配。但是 regex.Success 返回 false :(

Match regex = Regex.Match(html, @"<div[^>]*id=""thumbs"">(.+?)</div>");

最佳答案

正则表达式不是解析 HTML 文件的好选择..

HTML 不严格,格式也不规则..

使用htmlagilitypack


为什么要使用解析器?

考虑你的正则表达式..有无数种情况下你可以破坏你的代码

  • 如果有嵌套 div,您的正则表达式将不起作用
  • 有些 div 没有结束标记!(XHTML 除外)

您可以使用此代码通过 HtmlAgilityPack 检索它

HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);

var itemList = doc.DocumentNode.SelectNodes("//div[@id='thumbs']")//this xpath selects all div with thubs id
                  .Select(p => p.InnerText)
                  .ToList();

//itemList now contain all the div tags content having its id as thumbs

关于C#正则表达式提取一个div的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470525/

相关文章:

c# - 你如何在 VS 2013 中重新生成 aspx.designer.cs

c# - 从 SQL Server 数据库中获取 1 个单元格的更简单方法

匹配空白的正则表达式操作不起作用

c# - 正则表达式忽略模式

c# - WPF自定义控件库图片资源

c# - DbSet<T>.Where(where).ToList() - 为什么 SQL 不包含 where 子句?

c# - 使用正则表达式匹配连字符后的所有内容

java - 这种分组方法有什么问题吗? (分割字符串)

Javascript 正则表达式替换换行符

C# Marshalling double* 从 C++ DLL?