【发布时间】:2015-10-24 21:41:05
【问题描述】:
我正在尝试标记以下代码:
foo ::= 5
bar ::= 15
foobar ::= 20
所以输出是:
['foo', '::=', '5', '\n', 'bar', '::=', '15', '/n', 'foobar', '::=', '20' ]
我目前的尝试如下:
reTokens = re.compile(r' ')
tokens = reTokens.split(source)
print(tokens)
但是这会打印出来:
['\n', '', '', '', 'foo', '::=', '5\n', '', '', '', 'bar', '::=', '15\n', '', '', '', 'foobar', '::=', '20\n']
如您所见,存在很多问题。几个主要问题是:
- 空格未完全删除
- 某些标记未正确拆分(即“\n”。将 \n 添加到正则表达式也不能解决问题,因为这会将其从数组中完全删除)。
【问题讨论】:
标签: python python-3.x parsing compiler-construction lexical-analysis