C# 如何使用正则表达式获取包含特定文本的所有HTML标记?
我是新加入regex的,我不能做我需要的事情 假设我们有以下文本: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=
<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();