包含街道地址匹配的正则表达式锚点href url

问题描述 投票:2回答:1

我喜欢从html字符串中获取锚标记定义中的url。 html的结构相当不错,但我试图收集的字符串包含谷歌地图的地址,可能会有很大差异。我试图使用preg_match_all获取所有匹配的网址。

<tr><td><a href="http://maps.google.com/maps?q=4165 E LIVE OAK AVE,">map</a></td></tr>
<tr><td><a href="http://maps.google.com/maps?q=8000 SUNSET BLVD, LOS ANGELES,">map</a></td></tr>
<tr><td><a href="http://maps.google.com/maps?q=30600 THOUSAND OAKS BLVD, AGOURA,">map</a></td></tr>
<tr><td><a href="http://maps.google.com/maps?q=9090 19TH ST, ALTA LOMA,">map</a></td></tr>
<tr><td><a href="http://maps.google.com/maps?q=185 W ALTADENA DR, ALTADENA,">map</a></td></tr>
<tr><td><a href="http://maps.google.com/maps?q=620 E MOUNT CURVE AVE,">map</a></td></tr>
php regex url preg-match-all street-address
1个回答
1
投票

请尝试以下正则表达式:

/http:\/\/maps.google.com\/maps\?q[^"]+(?=")/

但是页面可能包含您所呈现的HTML结构之外的类似URL,那么最好使用更复杂的正则表达式:

/(?<=<tr><td><a href=")http:\/\/maps.google.com\/maps\?q[^"]+(?=">map<\/a><\/td><\/tr>)/
© www.soinside.com 2019 - 2024. All rights reserved.