【问题标题】:Retrieve Html attributes using Regex使用正则表达式检索 Html 属性
【发布时间】:2009-08-10 12:31:34
【问题描述】:

我需要一种快速的方法来将一堆 html 属性放入字典中。像这样

<body topmargin=10 leftmargin=0 class="something"> should amount to

attr["topmargin"]="10"
attr["leftmargin"]="0"
attr["class"]="something"

这是在服务器端完成的,并且标签内容已经可用。我只需要剔除没有价值的标签,并考虑不同的引号或缺少。

我猜应该使用正则表达式。发现了一些类似的问题,但没有一个真正符合我的需要。

谢谢

编辑:澄清服务器端

【问题讨论】:

    标签: c# .net regex


    【解决方案1】:

    【讨论】:

    • 怎么样?我不想要一个新的框架或 html 解析器来完成我知道一个好的正则表达式可以解决的这个任务。只是这些年来我仍然在使用正则表达式。
    • @danijels - 众所周知,使用正则表达式解析 HMTL 非常困难。我强烈建议您考虑这个答案。 (顺便说一下+1)
    • 您将花费大量时间尝试使正则表达式正常工作,但像这样的库可能是最好的途径。尤其是考虑到大多数 HTML 源代码的格式错误。
    • 正则表达式不适合解析类似 XML 的内容。属性可以是任意顺序,并且是可选的。格式不必在一行。有时最好使用真正理解其阅读内容的解析器。
    • +1 我对“使用实际解析器”回答“哪个正则表达式来解析 HTML?”在 SO 的这一年中生成的聚合代表值感到好奇。问题。
    【解决方案2】:

    我也认为使用专门的解析器会更好,但是如果您想使用正则表达式,请尝试:

    \<(?<tag>[a-zA-Z]+)( (?<name>\w+)="?(?<value>\w+)"?)*\>
    

    我刚刚测试过,效果很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2020-12-04
      • 2010-11-25
      相关资源
      最近更新 更多