preg_match bbcode

时间:2012-06-05 21:20:24

标签: php regex

我目前有像这样的bbcode

[caption=Some text goes here]image.jpg[/caption]

我想使用php的preg_match,所以我可以获得image.jpg的值,无论'caption ='旁边是什么。有人可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

原始正则表达式:

]([^\]]+)[/caption]

preg_match("]([^\]]+)[/caption]", myString, $matches)

image.jpg将出现在第一组中。 $matches[1] (我不确定我是否在php中正确地逃脱了它。)

答案 1 :(得分:1)

您可以使用此正则表达式:

$str = '[caption=Some text goes here]image.jpg[/caption]';
if (preg_match('/^\[[^\]]+]([^[]+)/', $str, $arr))
   echo "image: $arr[1]\n";

输出

image: image.jpg

答案 2 :(得分:0)

<强> RegExp is not magic. PHP already has a pre-made extension library to handle BBCode.

不要重新发明轮子,不要让自己变得困难。

答案 3 :(得分:0)

如果您想匹配完整的bbcode标记,包括标题,请使用

preg_match("/\[caption=(.+)\](.+)\[\/caption\]/", $myString, $matches);

这将产生以下$matches数组:

Array
(
    [0] => [caption=Some text goes here]image.jpg[/caption]
    [1] => Some text goes here
    [2] => image.jpg
)