Regex - Match attribute in a HTML code
本问题已经有最佳答案,请猛点这里访问。
我无法将HTML属性(在各种HTML标记中)与regex匹配。为此,我使用以下模式:
1 | myAttr="([^']*)" |
HTML片段:
1 | <img alt="" src="1-p2.jpg" myAttr="http://example.com" class="alignleft" /> |
它从
字符类中有一个撇号(
1 | myAttr="([^"]*)" |
也就是说,您真的不应该用regex来解析HTML。(很抱歉再次链接到该答案。这个问题还有其他的答案,更多的是"如果你知道你在做什么…"的多样性。但这是一件好事。)
请注意,即使您将Regexing限制为只考虑属性,您也有很多需要考虑的因素:
- 注意不要在评论里面匹配。
- 注意不要与CDATA部分内部匹配。
- 如果属性用单引号而不是双引号括起来呢?
- 如果属性没有引号怎么办?
这就是为什么通常需要预构建的、严肃的解析器。
*是一个贪婪的量词。你应该在后面加上问号,使它不贪婪:
1 | myAttr="([^']*?)" |
如果只需要myattr参数值,请使用:
1 | "myAttr="([^"]+)"" |
你可以试着用那个
1 | myAttr="?[\w:\-]+ ?= ?("[^"]+"|'[^']+'|\w+)" |
<[^>] *>
只需尝试这是删除所有标签的帮助
例子某物