【发布时间】:2015-03-15 18:50:41
【问题描述】:
我正在尝试将<html> 标记与可选属性匹配并提取这些属性。我想匹配<html> 标签的以下变体之一。它可能是 HTML 文档的起始内容,或者在 <html> 之前可能有 DOCTYPE 声明。
<html>
<html lang="en">
<html class="my-class">
<html class="my-class" lang="en">
我正在尝试的正则表达式模式如下,但它只匹配第四种情况的最后一个属性lang="en"。
/<html(\s+([a-z\-]+)=('|")([^"'>]*)('|"))*>/i
Demo
我知道有些人建议使用 DOM 解析器而不是正则表达式。但我认为正则表达式足以满足我的情况,因为我只想匹配 <html> 标签。
【问题讨论】:
-
<html总是出现在第一位吗? -
@AvinashRaj 没问题。我们可以在模式的开头添加
^。 -
我的意思是
<html之前有空格吗?