如何使用正则表达式获得包含特定文本的所有HTML标记?

本文关键字:HTML 标记 文本 正则表达式 何使用 包含特 | 更新日期: 2023-09-27 18:13:09

我是regex的新手,我不能做我需要的。

让我们假设我们有这样的文本:

<h1>Título</h1>
<h2>Los gatos felices</h2>
Existen una serie de gatos...
<h2 style="color:red" class="grande">los gatos: curiosidades</h2>
<p style='text-align: justify;' align='justify'>De por si 
<strong>los gatos</strong> saben saltar y además 
<strong>los perros odian a los gatos</strong>
</p>

我需要得到所有包含"los gatos"文本的标签。

它应该匹配4个巧合:

- <h2>Los gatos felices</h2>
- <h2 style="color:red" class="grande">los gatos: curiosidades</h2>
- <strong>los gatos</strong>
- <strong>los perros odian a los gatos</strong>

如何用正则表达式求解?

编辑:

我终于找到我需要的了!我把它分享给任何可能需要的人:

<(.*)([^<]*)>([^<]*)los gatos([^<]*)<'/'1>

如何使用正则表达式获得包含特定文本的所有HTML标记?

使用真正的Html解析器如htmllagilitypack

代替Regex
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(yourhtmlstring);
var h2s = doc.DocumentNode.SelectNodes("//h2").Select(x => x.InnerText).ToList();