[英]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.