我想创建一个与HTML代码中的链接匹配的正则表达式。 这个例子可以更好地解释它。像这样:
<a href="I NEED THIS1"> <img src="I NEED THIS2"> </a> <a href="I DONT
NEED THIS" title="something"> </a> <a href="I NEED THIS3" title="blah">
<figure> <img src="I NEED THIS4" alt=""> </figure> </a>
我尝试了类似这样的东西,但它匹配我不需要这个而不是我需要这个。
<a href="([^"]*)"\s*.*?<img src="(.*?)".*?\s*<\/a>
我尝试添加负面前瞻,但无论我把它放在哪里,都是因为我根本没有添加它。我不确定我是否理解否定前瞻,但我尝试添加(?!&lt; / a&gt;)。
我使用正则表达式找到彼此靠近的单词,并且它有效,但它确实不是非常优雅的解决方案:)当0到7个单词之间的距离时,它找到href和img src:
<a href="([^"]*)"\W+(?:\w+\W+){0,7}?<img src="(.*?)".*?\s*<\/a>
它将在Excel VBA中使用,我在在线正则表达式测试人员网站上测试它 任何建议都会有所帮助。
答案 0 :(得分:1)
使用MSHTML解析器:
didEnterRegion
您可能需要删除前导Dim odoc As Object: Set odoc = CreateObject("htmlfile")
odoc.Open
odoc.Write htmlstr
For Each element In odoc.images
MsgBox element.src
Next
For Each element In odoc.getElementsByTagName("a")
MsgBox element.href
Next
前缀。
答案 1 :(得分:0)
这是另一种解决方案。
(href="([^"]+).*(?=img src))|(img src="([^"]*))