preg_match REGEX清理,根据开始和结束识别字符串

时间:2012-01-16 07:48:57

标签: php regex

我需要动态地清理页面中的Google新闻链接,并获取内容的实际链接。

Google新闻链接如下所示:

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGkF58EwDE7aA742GfVP9aE8azmhg&url=http://www.reuters.com/article/2012/01/15/us-obama-mlk-idUSTRE80E0PD20120115

我想保留实际链接, & url = 之后的所有内容:

http://www.reuters.com/article/2012/01/15/us-obama-mlk-idUSTRE80E0PD20120115

我需要preg_match / preg_replace并删除网址的“非必要”部分,实质上是针对以 http://news.google.com & url =

结尾
http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGkF58EwDE7aA742GfVP9aE8azmhg&url=

你可能会说,我不是正则表达专家。 :)

非常感谢!

2 个答案:

答案 0 :(得分:1)

如果我了解你,你只想在&url=之后获得该部分,所以这可以通过像&url=(.*)$这样的简单正则表达式来解决。如果在网址后面还有其他GET值,则需要&url=(.*)&

我建议Rubular尝试使用正则表达式,尽管它是基于ruby的。

答案 1 :(得分:1)

您可以将preg_replace~http://new\.google\.com.*?&url=~一起使用,替换为''。

或者,您可以将preg_match&url=(.*)$一起使用并提取$1