中括弧がネストされた文字列からツリー構造を作成しようとしています。誰かがそれをしましたか?コード折り畳みのあるソースコードエディタはそれを使用します。私はphpでそれをやりたいと思っています、多分正規表現で?ありがとう
2 に答える
それは明らかに文字列の内容に依存します。運が良ければ、
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/も参照してください。
解決策は、少しの文字列処理を行ってルート ノードの子ツリー文字列を識別し、それらを再帰的に解析して最終的なツリーを作成することです。
たとえば、中括弧がネストされたルート ツリー文字列が "{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を参照して、この種の問題を解決するための一般的なアイデア/アルゴリズムについて紹介するブログ投稿を参照できます。ネストされた中括弧または括弧を含む文字列からツリー構造を作成することについて。