Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想标记字符串,如:
'my name.is(johnny ,knoxville):'
进入:
['my', 'name', '.', 'is', '(johnny ,knoxville)', ':']
如您所见,空格分隔标记,非字母数字字符不与字母数字字符分组,还有另一个例外: 括号中的所有内容都被视为一个完整的标记。
我不确定是否应该使用 python RE、一些我不知道的 python 模块或外部库,如pyparsing
pyparsing
有任何想法吗?
您可以使用re.findall:
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', ';']