簡體   English   中英

如何使用regex.split解析html並在c#中返回值數組

[英]How to parse html and return array of values in c# using regex.split

目前,我正在嘗試解析一些html並返回一個數組,其中包含每個元素中的值。

例如:

如果我將下面的標記傳遞給函數

var element = "td";
var html = "<tr><td>1</td><td>2</td></tr>";
return Regex.Split(html, string.Format("<{0}*.>(.*?)</{0}>", element));

我期望返回一個數組[] {1,2}

我的正則表達式需要什么樣? 目前,我的數組返回了很多元素,而我的正則表達式技能卻不足

不要使用正則表達式解析HTML。

相反,您應該使用HTML Agility Pack

例如:

HtmlDocument doc = new HtmlDocument();
doc.Parse(str);

IEnumerable<string> cells = doc.DocumentNode.Descendants("td").Select(td => td.InnerText);

您確實不應該使用正則表達式來解析html。 html不是一種常規語言,因此regex無法正確解釋它。 您應該使用解析器。

C# 為此具有html 解析器

自原始答案以來,加載html的方法已更改,現在是:

// From File
var doc = new HtmlDocument();
doc.Load(filePath);

// From String
var doc = new HtmlDocument();
doc.LoadHtml(html);

// From Web
var url = "http://html-agility-pack.net/";
var web = new HtmlWeb();
var doc = web.Load(url);

但是,如果您按照上面提供的鏈接使用文檔,就可以了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM