如何正确拆分代码字符串

时间:2015-04-20 05:28:04

标签: python string syntax

我正在尝试用Python编写基本的Java词法分析器。我现在面临的问题是将一行字符串拆分为单词/标记。

示例:

if (x < 3)
{
    x = 3;
}
else
{
    x = 0;
}

我想让它返回一个这样的列表:

["if", "(", "x", "<", "3", ")", ...

但我的代码正在返回

["if", "(x", "<", "3)"]

我的代码:

for line in code.readlines():
    for word in line.split():
        print word

我搜索了一个解决方案但只找到了使用正则表达式的解决方案,有没有办法在没有正则表达式的情况下执行此操作?因为我不知道如何使用它们,我现在没有足够的时间来学习它......

任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:3)

Python字符串.split()函数,默认情况下拆分由空格分隔的字符串,并返回包含任何不带空格的混合字符的列表。我的简单建议是在使用.split()函数之前用新的两个边空格符号替换符号字符:

for line in code.readlines():
    for sign in '({[<+-=*/%;>]})':
        line = line.replace(sign, ' %s ' % sign)
    for word in line.split():
        print word