当前位置: 首页 > 知识库问答 >
问题:

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

曹景铄
2023-03-14

我是正则表达式的新手,我不能做我需要的。

假设我们有这样一段文字:

<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>

共有1个答案

养研
2023-03-14

使用真正的Html解析器而不是Regex,例如HtmlAgilityPack

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(yourhtmlstring);

var h2s = doc.DocumentNode.SelectNodes("//h2").Select(x => x.InnerText).ToList();
 类似资料:
  • 我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。 对于前任: <代码> <代码> <代码> 我找到了这个特殊的片段

  • 问题内容: 我正在寻找一个正则表达式,可以从Java中的HTML片段中获取src(不区分大小写)标签。 问题答案: 一种可能性: 是可能的(如果不区分大小写地匹配)。这有点混乱,故意忽略了不使用引号的情况。要表示它而不必担心字符串转义: 这符合: 一个或多个不是的字符(即可能的其他属性) 可选空格 可选空格 或的起始定界符 图片来源 (可能不包含单引号或双引号) 结束定界符 尽管表达式可以在此处停

  • 我想验证输入的代码是否是HTML代码(必须以<代码> 我试着这么做 但是我有一个问题需要在代码中做一个\n,我需要验证第一个和结束标签(=

  • 使用regex,我希望能够获得多个html标记之间的文本。这里的HTML只是为了表示输入,我不担心HTML标签,只是想检索HTML标签中的内容(在正确的开始和结束标签之间)。例如,以下内容: 所需输入: 所需输出: 获得的输出: Regex我尝试过: 我没有得到预期的结果。 我的java代码:

  • 我目前正在尝试用PHP从包含html标记的文本中获取所有单词 我的regex有一个问题,如果一个单词以重音结束(例如“é”),我的单词就不会被捕获。

  • 问题内容: 我想从一般的HTML页面中提取所有文本(是否显示)。 我想 删除 任何HTML标记 任何JavaScript 任何CSS样式 是否有一个正则表达式(一个或多个)可以实现? 问题答案: 您不能真正用正则表达式解析HTML。太复杂了。RE根本无法正确处理部分。此外,某些常见的HTML之类的东西将在浏览器中作为适当的文本工作,但可能会使天真的RE感到困惑。 有了合适的HTML解析器,您会更快