我希望从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/)
的值 - 其他所有内容都可以删除。
希望正则表达式向导可以帮助我解决这个问题:)
干杯,
迈克尔。
答案 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]);