我有数据:
audio_9813314_456239162
audio_9813314_456239175
audio_9813314_456239145
audio_9813314_456239178
我只需要数字的第二部分,比如
456239162
456239175
等
答案 0 :(得分:0)
正如您所看到的,我循环数据并将数据拆分到_
并占用最后一部分[-1]
data = ["audio_9813314_456239162",
"audio_9813314_456239175",
"audio_9813314_456239145",
"audio_9813314_456239178"]
new_data = []
for i in data:
last_part = i.split("_")[-1]
new_data.append(last_part)
print(new_data)
输出:
['456239162', '456239175', '456239145', '456239178']
output:
答案 1 :(得分:0)
这里有几个选项,您可以随意选择。这有两种方法可以解决这个问题。
findall
如果您知道所需的数字始终位于结尾或第二位,您可以使用findall
import re
str1 = 'audio_9813314_456239162'
print re.findall('(\d+)', str1)[-1]
print re.findall('(\d+)', str1)[1]
输出
456239162
456239162
match
匹配从第一个字符开始,从左到右,因此您需要在您要查找的数字之前考虑所有内容。注意:第0个索引是整个字符串,所以我们得到第一个索引。
print re.match('.+_\d+_(\d+)', str1).group(1)