我试图用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句