gpt4 book ai didi

PHP 正则表达式匹配带有可选属性的 标签

转载 作者:太空宇宙 更新时间:2023-11-04 16:22:40 24 4
gpt4 key购买 nike

我正在尝试匹配 <html>带有可选属性的标签并提取这些属性。我想匹配以下变体之一 <html>标签。这将是 HTML 文档的起始内容,或者可能有 DOCTYPE <html>之前的声明.

<html>
<html lang="en">
<html class="my-class">
<html class="my-class" lang="en">

我正在尝试的正则表达式模式如下,但它只匹配最后一个属性 lang="en"对于第四种情况。

/<html(\s+([a-z\-]+)=('|")([^"'>]*)('|"))*>/i

Demo

我知道有些人建议使用 DOM 解析器而不是正则表达式。但我认为正则表达式足以满足我的情况,因为我想匹配 <html>仅标记。

最佳答案

使用下面的正则表达式,然后从组索引 1 和 3 中获取属性值对。

(?:<html|(?<!^)\G)\h*(?:([^=\n\h]+)=(['"])((?:\\\2|(?!\2).)*)\2)?

\G reference.

DEMO

关于PHP 正则表达式匹配带有可选属性的 <html> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27996281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com