PHP bbcode递归正则表达式

时间:2012-05-13 13:20:26

标签: php regex recursion nested bbcode

[div="desc"][1="text1"][2="text2"][3="link3"][/div]

它继续可以继续限制为6。 如何创建一个提取“desc”,数字和文本的正则表达式? 我尝试使用php数组,但我无法使用。

谢谢!

1 个答案:

答案 0 :(得分:2)

这里没有递归 - 至少你的例子没有显示它。如果在一般情况下确实存在递归,则正则表达式将不起作用;你将不得不使用解析器。

对于这种情况,我建议首先使用preg_match_all和/ [([^]] +)] /这样的正则表达式。如果将数组matches传递给此函数,则在运行preg_match_all之后,matches[1]应该是一个包含字符串'[div =“desc”]','[1 =“text1”]'的数组,一旦你有这个数组,你可以使用foreach循环它并在=上拆分每个字符串,然后用你解析的字符串的两个部分做任何你喜欢的事情。