我正在寻找从带有嵌套大括号的字符串创建树结构。有没有人这样做过?具有代码折叠功能的源代码编辑器使用它。我想用 php 来做,也许用正则表达式?谢谢
问问题
428 次
2 回答
1
这显然取决于您的字符串的内容。如果你非常幸运,
json_decode(strtr($str, '{}', '[]'))
可能会奏效。幸运的意思是:你的字符串是一个有效的 JSON 数组,递归地包含除对象之外的任何东西,所有方括号都替换为大括号,字符串中没有大括号。例如:
$str = '{3.14, null, {1, "two", 3}, {{"4.1 A", "4.1 B"}, 4.2}, true}'
于 2012-05-20T20:24:25.353 回答
0
一种解决方案是进行一些字符串处理以识别根节点的子树字符串并递归解析它们以创建最终树。
例如,如果带有嵌套大括号的根树字符串类似于“{1:AA{..child 1..}{..child 2..}{..child 3..}...{..child n ..}}”,可以先识别出子树字符串(child 1到child n),然后递归解析n个子字符串,直到构造出最终的树结构。
您可以参考此链接http://moderntone.blogspot.tw/2013/08/a-general-algorithm-for-creating-tree.html到一篇介绍解决此类问题的一般思想/算法的博客文章关于从带有嵌套大括号或括号的字符串创建树结构。
于 2013-08-31T15:45:23.307 回答