RegEx模式从HTML标签中抓取数据

时间:2018-05-08 13:46:55

标签: html regex

匹配此模式的正则表达式模式,其中内部标头标记可以包含idclass等任意数量的属性,并且标头标记内可以包含零个或多个强标记?我想匹配以下模式:

  1. 任何HTML标头(h1-h5)
  2. 标题标记内可以包含任何属性。
  3. 可以存在零个或多个强标签。
  4. <h5 id="some_id"><strong><strong><strong>SOME_TEXT</strong></strong></strong></h5>
    

1 个答案:

答案 0 :(得分:0)

您可以尝试:

match = re.search(r"<(h[1-5])\b(?:[^>]|>[<\s])*>([^<]+)(?:[^<]|<(?!/\1))*</\1>", 
    subject, re.IGNORECASE)
if match:
    result = match.group(2)
else:
    result = ""

我会在一秒内添加一个regex101来展示它是如何工作的。

这是:https://regex101.com/r/du8PCn/1(匹配的第2组)。

编辑:我对Python并不了解,但我相信如果您将html字符串与html字符串匹配,则需要使用上面的re.findallre.finditer其中有许多标题(而不是re.search)。