解析具有多个分隔符的字符串

时间:2015-11-01 22:53:41

标签: python python-2.7 parsing

我有一个文件列表:

my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']

我如何一次解析这些全部以获得每个中的第二个数字(第二个'_'之后和'。'之前的数字)?

2 个答案:

答案 0 :(得分:3)

我会使用列表理解。

>>> my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
>>> [i[i.rfind('_') + 1:i.rfind('.')] for i in my_list]
['23', '133', '9']

当然,如果你需要整数,你可以在理解中应用int()

答案 1 :(得分:1)

这将为您提供数字:

import re

def get_numbers(list):
    out = []
    for l in list:
        matched = re.match(r'\w+_\d+_(\d+)\.txt', l)
        if matched:
            out.append(matched.group(1))
    return(out)


my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt']
numbers = get_numbers(my_list)