早上好! 我正在使用 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 后面的文本的内容
- 第 3-n 组:字幕内容 + 文本
我有什么atm:
<hr.*?/>
<h2.*?>(.*?)</h2>
([\W\S]*?)
<hr.*?/>
由于尾随 <hr/>
,这将给我所有奇怪的子标题 + 内容(例如 1、3、...) .为了解析 h1-caption,我有另一个模式 ( <h1.*?>(.*?)</h1>
),它只给我标题而不是内容 - 我对那个 atm 没意见。
有没有人给我提示/解决方案或任何替代逻辑(例如,通过阅读器解析 html 并以这种方式分配它?)?
编辑:
正如一些人带来的HTMLAgilityPack ,我很好奇这个好工具。我完成了获取 <h1>
的内容-标签。
但是......我的问题是解析其余部分。这是由以下原因引起的:内容标签可能不同 - 从 <p>
至 <div>
和 <ul>
...
atm 这似乎或多或少地遍历整个文档并为标签解析标签......?
有什么提示吗?
最佳答案
你真的需要HTML parser为此
关于c# - 如何解析这段HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091645/