我有以下格式的数据
<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;极光 ......等等。
普莱斯
答案 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,但对我而言,这是个人品味的问题。