要从中提取的字符串:http:\/\/c.ypcdn.com\/2\/c\/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2FCleanation.com
以前使用的RegEx:www\..*?\.\w{2,5}
但是,如果具有“www”,则上述RegEx将仅获取URL。在里面。如果我拿出“www。” RegEx它只是抓住了c.ypcdn.com。我想在字符串的末尾抓住Cleanation.com。
需要动态,以便它可以抓取任何没有“www”的网址。超出那个网址。
答案 0 :(得分:3)
为什么不在返回的query
索引上使用parse_url()然后parse_str()来获取它?
编辑:示例:
$url= "http://c.ypcdn.com/2/c/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2FCleanation.com";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query,$params);
echo $params['dest'];
答案 1 :(得分:0)
如果这始终是dest
参数,您可以使用以下内容获取它:
"dest=https?%3A%2F%2F([^?&]+?)"
如果它离开最后一个参数,你可以用:
抓住它"dest=https?%3A%2F%2F(.+)$"