我想将字符串标记为:
'my name.is(johnny ,knoxville):'
成:
['my', 'name', '.', 'is', '(johnny ,knoxville)', ':']
正如您所注意到的,空格分隔标记,非字母数字字符不与字母数字字符组合,还有另一个例外:
括号中的所有内容都被视为一个整体标记。
我不确定是否应该使用python RE,一些我不知道的python模块或者像pyparsing
这样的外部库
有什么想法吗?
答案 0 :(得分:1)
您可以使用re.findall
:
from re import findall
input = 'my name.is(johnny ,knoxville):\nmore\n;'
results = findall(r'(?:[(][^)]*[)])|\w+|\S', input)
print results
产生结果:
['my', 'name', '.', 'is', '(johnny ,knoxville)', ':', 'more', ';']