我有一大块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">
这是我正在使用的正则表达式<meta.*?\s+content\s*=\s*\"\[320]\".*?
答案 0 :(得分:1)
贪婪(。*)有一个小问题,并且方括号是RegEx中的控制字符......你几乎就在那里......如果我理解正确的话......
<meta[^>]*\scontent\s*=\s*"\[320\]"[^>]*>
检索您要求的文字内容meta
的一个content="[320]"
标记。
答案 1 :(得分:0)
试一试。我在Online Regex https://regex101.com中测试了它。
sort