我在使用正则表达式匹配html属性(在各种html标签中)时遇到问题。为此,我使用模式:
myAttr=\"([^']*)\"
HTML片段:
<img alt="" src="1-p2.jpg" myAttr="http://example.com" class="alignleft" />
它从myAttr
结尾/>
中选择文字,但我需要选择myAttr="..."
(“http://example.com”)
答案 0 :(得分:22)
你的角色类里面有一个撇号('
),但你想要一个引号("
)。
myAttr=\"([^"]*)\"
那就是说,你真的是shouldn't be parsing HTML with regexes。 (很抱歉再次链接到那个回答。这个问题的其他答案更多的是“如果你知道你在做什么......”的多样性。但是要注意这一点很好。 。)
请注意,即使您将regexing限制为属性,也需要考虑很多因素:
这就是为什么通常需要预先构建的,严肃的解析器。
答案 1 :(得分:4)
*是一个贪婪的量词。你应该用问号跟着它,使它变得非贪婪:
myAttr=\"([^']*?)\"
答案 2 :(得分:2)
如果您只想要myAttr参数值,请使用:
"myAttr=\"([^\"]+)\""
答案 3 :(得分:0)
您可以尝试使用
myAttr=\"?[\w:\-]+ ?= ?("[^"]+"|'[^']+'|\w+)\"
答案 4 :(得分:-3)
的百分比抑制率^&GT;] *&GT;
试试这是删除所有标记的帮助
实施例 某物