Python:将字符串拆分为单词,保存分隔符

Dan*_*Dan 1 python

我有一个字符串:

'Specified, if char, else 10 (default).'
Run Code Online (Sandbox Code Playgroud)

我想把它分成两个元组

words=('Specified', 'if', 'char', 'else', '10', 'default')

separators=(',', ' ', ',', ' ', ' (', ').')
Run Code Online (Sandbox Code Playgroud)

有人对此有快速解决方案吗?

PS:此符号'-'是单词分隔符,不是单词的一部分

And*_*ark 5

import re
line = 'Specified, if char, else 10 (default).'
words = re.split(r'\)?[, .]\(?', line)
# words = ['Specified', '', 'if', 'char', '', 'else', '10', 'default', '']
separators = re.findall(r'\)?[, .]\(?', line)
# separators = [',', ' ', ' ', ',', ' ', ' ', ' (', ').']
Run Code Online (Sandbox Code Playgroud)

如果您确实希望元组将结果传递到中tuple(),如果您不想words有空条目(从逗号和空格之间),请使用以下命令:

words = [x for x in re.split(r'\)?[, .]\(?', line) if x]
Run Code Online (Sandbox Code Playgroud)

要么

words = tuple(x for x in re.split(r'\)?[, .]\(?', line) if x)
Run Code Online (Sandbox Code Playgroud)