-2

中括弧がネストされた文字列からツリー構造を作成しようとしています。誰かがそれをしましたか?コード折り畳みのあるソースコードエディタはそれを使用します。私はphpでそれをやりたいと思っています、多分正規表現で?ありがとう

4

2 に答える 2

1

それは明らかに文字列の内容に依存します。運が良ければ、

json_decode(strtr($str, '{}', '[]'))

動作する可能性があります。幸運なことに、文字列は有効な JSON 配列であり、オブジェクト以外のものを再帰的に含み、すべての角かっこが中かっこに置き換えられ、文字列に中かっこがないことを意味します。例えば:

$str = '{3.14, null, {1, "two", 3}, {{"4.1 A", "4.1 B"}, 4.2}, true}'

http://www.json.org/も参照してください。

于 2012-05-20T20:24:25.353 に答える
0

解決策は、少しの文字列処理を行ってルート ノードの子ツリー文字列を識別し、それらを再帰的に解析して最終的なツリーを作成することです。

たとえば、中括弧がネストされたルート ツリー文字列が "{1:AA{..child 1..}{..child 2..}{..child 3..}...{..child n ..}}" を使用すると、最初に子ツリー文字列 (子 1 から子 n まで) を識別してから、最終的なツリー構造が構築されるまで、n 個の部分文字列を再帰的に解析できます。

このリンクhttp://moderntone.blogspot.tw/2013/08/a-general-algorithm-for-creating-tree.htmlを参照して、この種の問題を解決するための一般的なアイデア/アルゴリズムについて紹介するブログ投稿を参照できます。ネストされた中括弧または括弧を含む文字列からツリー構造を作成することについて。

于 2013-08-31T15:45:23.307 に答える