繁体   English   中英

如何正确分割代码字符串

[英]How to split code string properly

我试图用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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM