使用preg_match从此html中截取经度和纬度

时间:2013-11-05 08:29:01

标签: php regex preg-match preg-match-all

我正在尝试使用正则表达式从这个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] =&gt; 纬度:     [1] =&gt; )

我知道怎样才能得到坐拥?

3 个答案:

答案 0 :(得分: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
        )
)

答案 1 :(得分:0)

preg_match_all("/<strong>Latitude :<\/strong> ([\d\.]+)<strong>Longitude :<\/strong> ([\d\.]+)/", $input_line, $output_array);

答案 2 :(得分:0)

你能做的最简单的事情就是先strip the tags出局。那么你的RegExp可以更加简单和可维护。

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

Latitude : 46.369384765625Longitude : 2.56929779052734

与此RegExp一起:

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

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