我有 3 个版本的字符串:
[center][thumb]http://some_domain.com/uploads/posts/2010-04/1271272006_tn.jpg[/thumb][/center]
[center][img]http://some_domain.com/uploads/posts/2012-01/1325796885.jpg[/img][/center]
[img]http://some_domain.com/uploads/posts/2012-01/1325796885.jpg[/img]
它也可以是[left][/left]
或[right][/right]
。前两个我通过 /\[(center|left|right)\]\[(img|thumb)\](.*)?\[(\/img|\/thumb)\]\[(\/center|\/left|\/right)\]/
,但是第三个有一个问题:如何检查“前一个”是否不存在?
附注 我只需要获取网址。
最佳答案
为什么不直接删除那些“标签”呢?
$buffer = strtr($input, array('[' => '<', ']' => '>'));
$url = strip_tags($buffer);
对于您的三个示例,这是:
http://some_domain.com/uploads/posts/2010-04/1271272006_tn.jpg
http://some_domain.com/uploads/posts/2012-01/1325796885.jpg
http://some_domain.com/uploads/posts/2012-01/1325796885.jpg
关于php - 如何检查正则表达式中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206234/