我需要一种方法来词法分裂我的字符串

时间:2012-09-15 17:30:46

标签: python lexical-analysis

例如,如果我给这个字符串

"asdf bob(1, 2, "a")"

我希望将其拆分为

["asdf", "bob", [1, 2, "a"]]

我尝试过使用SHLEX,但似乎太简单了。它不会将括号拆分为不同的数组,也不会正确地拆分逗号。

现在,我知道我可以用一些for循环和一些技巧来做这件事,但我想节省空间,时间和速度。我将不胜感激,谢谢!

P.S。它应该能够分割多线,所以如果我有功能,例如。

"   desu(1, 2){    \n
        asdf       \n
    }               "

应分为

["desu", [1, 2], ["asdf"]]

将curley braces分成不同的列表。

这会节省很多时间!谢谢!

1 个答案:

答案 0 :(得分:1)

你看过pyparsing了吗?这是一个通用的python解析模块,可以帮助你。 Pyparsing可用于递归下降解析,例如编程语言。对于不遵循已经实现的示例之一的语言,pyparsing模块具有相当陡峭的学习曲线。但是,对于您的语言,我认为您可以重复使用其网站上的一个示例。