如何解析這段HTML?

c# html html-agility-pack

早上好!我正在使用c#(框架3.5sp1),並希望通過正則表達式解析下面的一段html:

<h1>My caption</h1>
<p>Here will be some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>

我需要以下輸出:

  • 第1組:h1的含量
  • 第2組:h1後續文本的內容
  • group 3-n:子標題+文本的內容

我有什麼atm:

<hr.*?/>
<h2.*?>(.*?)</h2>
([\W\S]*?)
<hr.*?/>

由於尾隨的<hr/> ,這將給我每個奇數的子標題+內容(例如,1,3,...)。為了解析h1-caption我有另一個模式( <h1.*?>(.*?)</h1> ),它只給我標題而不是內容 - 我對那個atm很好。

有沒有人對我或任何替代邏輯有一個提示/解決方案(例如通過閱讀器解析HTML並以這種方式分配?)?

編輯:
正如一些人帶來的HTMLAgilityPack ,我很好奇這個漂亮的工具。我完成了<h1> -tag的內容。
但是...我的問題是解析其餘部分。這是由於:內容的標籤可能會有所不同 - 從<p><div><ul> ... atm這似乎或多或少地遍歷整個文檔並解析標籤的標籤......?任何提示?

一般承認的答案

你真的需要HTML解析器


熱門答案

不要使用正則表達式來解析HTML。考慮使用HTML Agility Pack




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因