是否有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