You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex提取HTML中所有属性的值

提取HTML属性键值对的正则方案

目标HTML代码

<!DOCTYPE html>
<html lang="en">

<head>
    <link rel="stylesheet" href="homeWork.css">
    <script src="./homeWork.js"></script>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div class='container'>
        <div class='mango'> first div mango</div>
        <div type='red' class='m2ango'>div red m2ango</div>
        <div type='green' class='magngo'>div green magngo</div>
        <li class='mango'>li mango
    </div>
    <div class='mango'>second div mango</div>
    <li type='green' class='mango'>li green mango
        </div>
        <div id="div1"></div>
        <div id="div2"></div>

</body>

</html>

匹配正则表达式

(\w+)(?:-?\w+)?\s*=\s*(['"])(.*?)\2

提取后的中文结果

  • 语言: en
  • 关系: stylesheet
  • 引用地址: homeWork.css
  • 引用地址: ./homeWork.js
  • 字符编码: UTF-8
  • 兼容模式: X-UA-Compatible
  • 内容: IE=edge
  • 视口: viewport
  • 内容: width=device-width, initial-scale=1.0
  • 类名: container
  • 类名: mango
  • 类型: red
  • 类名: m2ango
  • 类型: green
  • 类名: magngo
  • 类名: mango
  • 类名: mango
  • 类型: green
  • 类名: mango
  • 标识: div1
  • 标识: div2

正则逻辑说明

这个正则可以兼容单/双引号包裹的属性值,同时支持带连字符的属性名(比如http-equiv):

  • (\w+)(?:-?\w+)?: 匹配属性名,涵盖普通单单词属性和带连字符的组合属性
  • \s*=\s*: 匹配属性名与值之间的等号,自动忽略前后空格
  • (['"]): 捕获开头的引号类型,用于后续匹配闭合引号
  • (.*?): 非贪婪匹配引号内的属性值,避免跨引号匹配
  • \2: 匹配与开头一致的闭合引号,确保属性值的边界准确

内容的提问来源于stack exchange,提问作者mali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:01:28