【问题标题】:Regex to find a specific tag in HTML [duplicate]正则表达式在 HTML 中查找特定标签 [重复]
【发布时间】:2018-11-10 18:14:24
【问题描述】:

我有一大段 HTML 我对我一无所知我试图在某个标签中查找和替换某个属性的值。所以我想捕获具有我的匹配属性的整个标签。标签中也可以有任意数量的未知属性。假设我有以下 HTML(都在一行上),其中 xxxx="zzzz" 表示任意数量的未知属性。我只想捕获具有 content="320"

的元标记

我的问题是,我在包含我正在寻找的实际属性的那个之前获取每个元标记。

<meta charset="UTF-8"><meta name="apple-mobile-web-app-capable" xxxx="zzzz" content="yes"><meta name="apple-mobile-web-app-status-bar-style" xxxx="zzzz" content="default"><meta name="mobile-web-app-capable" xxxx="zzzz" content="yes"><meta name="HandheldFriendly" xxxx="zzzz" content="True"><meta name="MobileOptimized" xxxx="zzzz" content="[320]"><meta name="format-detection" xxxx="zzzz" content="telephone=no"><meta name="title" xxxx="zzzz" content="Regex101">

格式化版本作为视觉辅助:

 <meta charset="UTF-8">
      <meta name="apple-mobile-web-app-capable" xxxx="zzzz" content="yes">
      <meta name="apple-mobile-web-app-status-bar-style" xxxx="zzzz" content="default">
      <meta name="mobile-web-app-capable" xxxx="zzzz" content="yes">
      <meta name="HandheldFriendly" xxxx="zzzz" content="True">
      <meta name="MobileOptimized" xxxx="zzzz" content="320">
      <meta name="format-detection" xxxx="zzzz" content="telephone=no">
      <meta name="title" xxxx="zzzz" content="Regex101">

这是我正在使用的正则表达式&lt;meta.*?\s+content\s*=\s*\"\[320]\".*?

示例:http://refiddle.com/refiddles/5b10282175622d3008480000

【问题讨论】:

标签: c# .net regex


【解决方案1】:

试试这个。我在 Online Regex https://regex101.com 中对其进行了测试。

<meta.+content="320">

【讨论】:

    【解决方案2】:

    贪心 (.*) 存在一个小问题,而且方括号是 RegEx 中的控制字符。如果我理解正确的话,你就快到了。

    <meta[^>]*\scontent\s*=\s*"\[320\]"[^>]*>
    

    检索您要求的文字内容content="[320]" 的一个meta 标记。

    【讨论】:

    • 感谢这就像一个魅力,我知道这是贪婪/非贪婪的问题!
    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 2012-05-28
    • 2020-12-15
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2014-06-16
    相关资源
    最近更新 更多