我试图在任何不是数字的字符上拆分字符串。
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。
