0

我正在尝试使用正则表达式从这个 html 中提取经度和纬度坐标。这只是来自http://www.bricodepot.fr/troyes/store/storeDetails.jsp?storeId=1753的完整 html 的片段,所以我需要能够搜索整个目标页面 html 并匹配经度和此块的纬度:

<div class="coordinates">
    <i></i>
    <strong>Latitude :</strong> 46.369384765625<strong>Longitude :</strong> 2.56929779052734</div>
</div>

这大约是我目前所能得到的:

preg_match("/<strong>Latitude :<\/strong> (.*?)/", $input_line, $output_array);

这使:

数组([0] =>纬度: [1] =>)

知道如何获得坐标吗?

4

3 回答 3

0

您快到了!

preg_match_all("<strong>L(at|ong)itude :<\/strong>\s([\w\.]*)?", $input_line, $output_array);

结果数组将类似于:

Array
(
    [0] => Array
        (
            [0] => <strong>Latitude :</strong> 46.369384765625
            [1] => <strong>Longitude :</strong> 2.56929779052734
        )

    [1] => Array
        (
            [0] => at
            [1] => ong
        )

    [2] => Array
        (
            [0] => 46.369384765625
            [1] => 2.56929779052734
        )
)
于 2013-11-05T08:33:01.137 回答
0
preg_match_all("/<strong>Latitude :<\/strong> ([\d\.]+)<strong>Longitude :<\/strong> ([\d\.]+)/", $input_line, $output_array);
于 2013-11-05T08:35:07.617 回答
0

您可以做的最简单的事情是先剥离标签。然后你的 RegExp 可能会更简单和可维护。

通过剥离标签,您最终得到:

Latitude : 46.369384765625Longitude : 2.56929779052734

连同这个正则表达式:

/(?:(Latitude|Longitude) : ([\d\.]+))/

你最终会得到这样的结果:http: //ideone.com/JGZOZi

于 2013-11-05T14:12:15.773 回答