从BBCode检索网址,丢弃其他所有内容

时间:2012-02-08 13:50:41

标签: php regex bbcode

我希望从BBCode块中删除除Flickr照片页面网址之外的所有网址,并使用以下示例:

[url=http://www.flickr.com/photos/vrfan/6821895917/][img]http://farm8.staticflickr.com/7025/6821895917_a372a271a2_z.jpg[/img][/url]
[url=http://www.flickr.com/photos/vrfan/6821895917/]Y159 being sanded at Daylesford[/url] by [url=http://www.flickr.com/people/vrfan/]VRfan[/url], on Flickr

我想要的只是第一个[url]标记(http://www.flickr.com/photos/vrfan/6821895917/)的值 - 其他所有内容都可以删除。

希望正则表达式向导可以帮助我解决这个问题:)

干杯,

迈克尔。

1 个答案:

答案 0 :(得分:0)

您可以将substr()strpos()结合使用,而不是使用正则表达式。

$matches = array();
$f = strpos($str, '[url=');
while ($f)
{
    $end = strpos($str, ']', $f);
    $f += 5;
    $matches[] = substr($str, $f, $end - $f);
    $f = strpos($str, '[url=', $end);
}
var_dump($matches);
// Regex Solution
preg_match_all('/\[url=(.+?)\]/i', $str, $matches);
var_dump($matches[1]);