【发布时间】:2020-05-17 06:51:13
【问题描述】:
我想将一个字符串拆分为一个列表 (Python),其中每个段要么是完全数字的,要么完全是非数字的
例子;
-
'100.200.300'给['100', '.', '200', '.', '300'] -
'abc0foo!bar'给['abc', '0', 'foo!bar'] -
'123'给['123'] -
'foo'给['foo']
输入可能以数字部分或非数字部分开始或结束。结果,当加入 "" 时,必须完整复制原始输入。
如果我分开,例如\d+ 然后我将保留非数字部分并丢失数字部分。我可以在 ^(\d+|\D+)(.*)$ 上循环播放,但这很烦人。
我可以(在单个表达式中)在边界上拆分并将所有字符串部分和非字符串部分保留在结果列表中吗?
【问题讨论】:
-
re.findall(r'\d+|\D+')适用于您发布的每个示例。