我设法使用以下方法匹配任何标记的href值:
(?<=href\=["'])(.*?)(?=["'])
鉴于以下内容:
<base target="_blank" href="http://test.test">
<link rel="stylesheet" type="text/css" href="test.css">
<a href="test">test link</a>
它将匹配每个属性的值。但是,是否只能匹配基本标记的URL?
(注意我们无法从'base href ='向前看,因为href可能不是第一个属性,如上例所示)
答案 0 :(得分:0)
这样的事情应该有效:
/<base [^>]*href=\"(.*?)\"/
一般的想法是,您只需匹配一个开头<base
代码,然后找到href
之后但在任何>
个字符之前显示的第一个引用值。如果任何其他属性中包含>
,这将会中断,但这不是一个实际问题,如果是,则应使用真正的HTML解析器来提取属性值。< / p>