我正在尝试在不是数字的任何字符上拆分字符串。
orig = '0 1,2.3-4:5;6d7'
results = orig.split(r'\D+')
我希望在results
中获得一个整数列表
0、1、2、3、4、5、6、7
但是我得到的是一个列表,其中包含一个与原始字符串匹配的单个字符串元素。
答案 0 :(得分:5)
好吧...您正在使用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。
答案 1 :(得分:1)
尝试一下:
orig = '0 1,2.3-4:5;6d7'
[i for i in orig if i.isdigit()]
答案 2 :(得分:0)
for i in '0 1,2.3-4:5;6d7':
try:
print(int(i),end=' ')
except:
continue