使用Python和re解析第二部分

时间:2017-05-20 05:08:00

标签: python regex parsing

我有数据:

audio_9813314_456239162
audio_9813314_456239175
audio_9813314_456239145
audio_9813314_456239178

我只需要数字的第二部分,比如

456239162
456239175

2 个答案:

答案 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)

这里有几个选项,您可以随意选择。这有两种方法可以解决这个问题。

  1. 一个简单的findall
  2. 如果您知道所需的数字始终位于结尾或第二位,您可以使用findall

    import re
    str1 = 'audio_9813314_456239162'
    
    print re.findall('(\d+)', str1)[-1]
    print re.findall('(\d+)', str1)[1]
    

    输出

    456239162
    456239162
    
    1. 使用match
    2. 明确搜索字词

      匹配从第一个字符开始,从左到右,因此您需要在您要查找的数字之前考虑所有内容。注意:第0个索引是整个字符串,所以我们得到第一个索引。

      print re.match('.+_\d+_(\d+)', str1).group(1)