1

我环顾了一会儿,但可能我无法使用正确的关键字“谷歌”,所以我在这里问。我需要使用正则表达式(php)从字符串中提取 url

一个简单的例子应该会有所帮助:

目标:提取url http://en.wikipedia.org/wiki/Kettle

基本字符串:

/url?q=http://en.wikipedia.org/wiki/Kettle&sa=U&ei=VpnIUP22Js3B0gWKhoCgCQ&ved=0CB0QFjAA&usg=AFQjCNGS7-bieZB8Vh7xR5sjOy-KT86ANQ
4

2 回答 2

4

有比正则表达式更好的选择来做到这一点。例如,PHP 提供了两个函数parse_urlparse_str它们完全符合您的要求:

$query = parse_url($string, PHP_URL_QUERY);
parse_str($query, $parameters);
$result = $parameters['q'];

也就是说,当然,除非您需要使用正则表达式,因为这是您的框架提供的全部内容,或者因为它是某种练习。

于 2012-12-12T15:01:05.930 回答
0

测试这个正则表达式:/q=([^&]+)/i

<?php
  $url = '/url?q=http://en.wikipedia.org/wiki/Kettle&sa=U&ei=VpnIUP22Js3B0gWKhoCgCQ&ved=0CB0QFjAA&usg=AFQjCNGS7-bieZB8Vh7xR5sjOy-KT86ANQ';
  $pattern = '/q=([^&]+)/i';
  preg_match($pattern, $url, $res);
  echo $res[1];
?>
于 2012-12-12T14:56:10.670 回答