是否有CPAN模塊可以讀取一個像這樣的字符串:是否有CPAN模塊來解析嵌套括號?
"[[<asdf>, <foo>], (abc, def, ghi), ({'jkl'})]"
...它解析成某種樹結構,很容易走路,漂亮地打印?
是否有CPAN模塊可以讀取一個像這樣的字符串:是否有CPAN模塊來解析嵌套括號?
"[[<asdf>, <foo>], (abc, def, ghi), ({'jkl'})]"
...它解析成某種樹結構,很容易走路,漂亮地打印?
Damian Conway's Parse::RecDescent
我沒有使用過這一點,但它是一個不錯的選擇,通過達米安康威寫了一個Perl模塊,是值得一用。
如果字符串與Data Dumper格式相同,那麼它可以是eval
-回到原始結構中。
我認爲你可以建立在Text::Balanced之上,這將爲你做很多繁重的工作。不過,您仍然需要構建樹結構。
Perl 6將有內置的設施來幫助支持這一點。在此期間,Text :: Balanced(如Dave Rolsky提到的)可能是首選模塊。請注意,它也是由Damian Conway編寫的(正如Bill Karwin所讚揚的)。
Perl 5.10的正則表達式可以處理那樣的平衡結構。請參閱perlre中的(?PARNO) (?-PARNO) (?+PARNO) (?R) (?0)
部分。
這實際上是一個整潔的想法,如果你確定輸入是有效的和所有的。謝謝。編輯:儘管Perl的自動拼合可能會從輸入中丟失很多信息。 – sundar 2013-07-24 07:34:50