3

我想标记字符串,如:

'my name.is(johnny ,knoxville):'

进入:

['my', 'name', '.', 'is', '(johnny ,knoxville)', ':']

如您所见,空格分隔标记,非字母数字字符不与字母数字字符分组,还有另一个例外:
括号中的所有内容都被视为一个完整的标记。

我不确定是否应该使用 python RE、一些我不知道的 python 模块或外部库,如pyparsing

有任何想法吗?

4

1 回答 1

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', ';']
于 2013-08-25T08:54:32.647 回答