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

C# 如何使用正则表达式获取包含特定文本的所有HTML标记?,c#,regex,text,tags,contains,C#,Regex,Text,Tags,Contains,我是新加入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=

我是新加入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>
Título
洛斯加托斯费利斯酒店
加托斯酒店。。。
洛斯加托斯:奇珍异宝

deporsi 洛斯加托斯萨本盐田和阿德马斯 los perros dian a los gatos

我需要得到所有包含“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 perros dian a los gatos
我如何用正则表达式求解它

编辑:

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

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

使用真正的Html解析器代替正则表达式,如


您可以使用HTML解析器。例如,试试AngleSharp。嗨,首先,这个问题不是重复的。我需要的是不要得到标签。我需要得到所有包含“los gatos”文本的标签。在本例中,可能是标记,但可能是更多的标记,如,…@Dalamar,Lucas是对的-正则表达式不是解析HTML的正确工具。首先,这个问题没有重复。嘎,一些人在体面的帮助面前太粗鲁了!向上投票,代替OP这么做。。。
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(yourhtmlstring);

var h2s = doc.DocumentNode.SelectNodes("//h2").Select(x => x.InnerText).ToList();