php正则表达式的问题

时间:2011-04-25 06:42:42

标签: php regex

我有以下格式的数据

<option value="http://www.torontoairportlimoflatrate.com/aurora-limousine-service.html">Aurora</option> <option value="http://www.torontoairportlimoflatrate.com/alexandria-limousine-service.html">Alexandria</option>

我把我的头撞在桌子上10次后想通了下面的正则表达式

preg_match_all("#>\w*#",$data,$result);

返回结果如下

 Array
(
    [0] => Array
        (
            [0] => >Ajax
            [1] => >
            [2] => >Aurora
            [3] => >
            [4] => >Alexandria
            [5] => >
            [6] => >Alliston

我只想要具有值的单个数组,即 城市   [0] =&gt;阿贾克斯   [1] =&gt;极光 ......等等。

普莱斯

1 个答案:

答案 0 :(得分:1)

如果您不想使用HTML解析器,可以使用正则表达式执行此操作,但请记住,您可能需要根据将来收到的内容进行修改。对于您的具体问题,这是一个完成工作的正则表达式:

<?php
    preg_match_all('/<option\svalue=\"([a-zA-Z0-9-_.\/:]+)\">([a-zA-Z\s]+)<\/option>/', $data, $result);

    var_dump($result[2]);

注意:

如果您想匹配每个网址,则应将([a-zA-Z0-9-_.\/:]+)替换为匹配正则表达式的功能更强大的网址。您也可以在StackOverflow上找到some,但对我而言,这是个人品味的问题。