在第二个和第三个下划线之间提取字符串

时间:2017-04-12 02:39:12

标签: python regex

我的数据如下:

ABC_10_2007_06_14.txt
ABC_11_2008_07_14.txt

我想提取2007年和2008年。那是什么正则表达式?我在下面试过,但它没有用。

.*_.*_(.*)_.*_.*\..*

2 个答案:

答案 0 :(得分:4)

您需要使用?运算符:

_.*?_(.*?)_.*?

示例:

>>> import re
>>> s = 'ABC_10_2007_06_14.txt'
>>> re.findall(r'_.*?_(.*?)_.*?', s)[0]
'2007'

答案 1 :(得分:1)

import re
a = "ABC_10_2007_06_14.txt ABC_11_2008_07_14.txt"
obj = re.findall(r"_.*?_(\d+)_.*?_.*?",a)
print obj

这将在列表类型对象2007中提取2008以及obj