如何使用正则表达式从bbcode [URL]标签获取属性

时间:2013-04-14 12:04:07

标签: php regex

我有一个字符串

$string = '[URL="http://www.google.com"]Google[/URL]

我使用以下代码将其转换为html链接

$link = preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/i', '<a href="\1">\2</a>', $string);

将其转换为以下格式

<a href="http://www.google.com">Google</a>

没关系。但我想验证这两个值http://www.google.comGoogle,如何使用正则表达式的帮助单独获取这两个值。

1 个答案:

答案 0 :(得分:2)

我认为你想要的是preg_match

实际上,您可以使用您已有的模式。它会通过一个参数为你提供整个匹配和每轮匹配。

preg_match('/\[url=(.+?)\](.+?)\[\/url\]/i', $string, $matches);
echo $matches[1]; // http://www.google.com
echo $matches[2]; // Google
echo $matches[0]; // [URL="http://www.google.com"]Google[/URL]

preg_match的返回值为1(找到匹配项)或0 / false(无匹配/错误)。