Skip to main content
 首页 » 编程设计

python之在非数字上拆分字符串

2025年05月04日19三少

我试图在任何不是数字的字符上拆分字符串。

orig = '0 1,2.3-4:5;6d7' 
results = orig.split(r'\D+') 

我希望在 results 中得到一个整数列表

0, 1, 2, 3, 4, 5, 6, 7

但我得到的是一个包含与原始字符串匹配的单个字符串元素的列表。

请您参考如下方法:

好吧......你正在使用str.split() - 将字符拆分为 - 而不是正则表达式。您的代码将拆分为任何 '\D+' - 文本中的字符串:

orig = 'Some\\D+text\\D+tosplit' 
results = orig.split(r'\D+')  # ['Some', 'text', 'tosplit'] 

您可以使用 re.split()相反:

import re 
 
orig = '0 1,2.3-4:5;6d7' 
results = re.split(r'\D+',orig) 
print(results) 

得到

['0', '1', '2', '3', '4', '5', '6', '7'] 

使用 data = list(map(int,results)) 转换为 int。