【发布时间】:2012-05-21 06:33:41
【问题描述】:
[div="desc"][1="text1"][2="text2"][3="link3"][/div]
它继续可以继续到 6 的限制。 如何创建一个提取“desc”、数字和文本的正则表达式? 我尝试使用 php 数组,但我做不到。
谢谢!
【问题讨论】:
-
递归在哪里?所有后续文本的格式是否相同?
标签: php regex recursion nested bbcode
[div="desc"][1="text1"][2="text2"][3="link3"][/div]
它继续可以继续到 6 的限制。 如何创建一个提取“desc”、数字和文本的正则表达式? 我尝试使用 php 数组,但我做不到。
谢谢!
【问题讨论】:
标签: php regex recursion nested bbcode
这里没有递归 - 至少您的示例没有显示它。如果在您的一般情况下确实存在递归,则正则表达式将不起作用;您将不得不使用解析器。
对于这种情况,我建议首先将 preg_match_all 与 /[([^]]+)]/ 之类的正则表达式一起使用。如果将数组 matches 传递给此函数,则在运行 preg_match_all 后,matches[1] 应该是包含字符串 '[div="desc"]'、'[1="text1"]' 等的数组。一旦你有了这个数组,你可以使用 foreach 循环遍历它,并在 = 上拆分每个字符串,然后对你解析的字符串的两个部分做任何你喜欢的事情。
【讨论】: