我目前有像这样的bbcode
[caption=Some text goes here]image.jpg[/caption]
我想使用php的preg_match,所以我可以获得image.jpg的值,无论'caption ='旁边是什么。有人可以帮助我吗?
答案 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
)