Python:如何将字符串与中间的通用日期匹配

时间:2019-02-16 09:16:04

标签: python regex

寻找将字符串(在我的情况下为文件名)与字符串中间任何格式的日期匹配的pythonic方法。

例如。 python-1u222-ea-str-b08- 10_dec_2018 .zip 我正在尝试使用python方法将上述字符串与任何日期匹配以代替10_dec_2018

element = "python-1u222-ea-str-b08-10_dec_2018.zip"
m = re.match("python-1u222-ea-str-b08-\"+\"[\d]{1,2}_[ADFJMNOS]\w*_[\d]{4}\"+\".zip",element)
if m:
    print("Hurray!!! ")
else:
    print(element, " : doesn't match")

这是我尝试过的,但是不匹配。我觉得重新匹配中有多个双引号是罪魁祸首。我是Python的初学者。

3 个答案:

答案 0 :(得分:0)

您可以使用:

False

答案 1 :(得分:0)

import re

element = "python-1u222-ea-str-b08-10_dec_2018.zip"
m = re.match("python-1u222-ea-str-b08-[\d]{1,2}_\w{3}_[\d]{4}.zip", element)

print("Hurray!!! ") if m else print(f"'{element}' doesn't match")

输出:

Hurray!!!

答案 2 :(得分:0)

我认为我们这里缺少一些线索。我正在以一种必需的方式重新措辞。

我有几个文件的列表,例如:

python-1u222-ea-str-b08-10_dec_2018.zip
pyth_plugin-1u222-ea-str-b08-windows-10_dec_2018.zip 
pyth_plugin-1u222-ea-str-windows.zip 
python-1u222-ea-str-b08-10_dec_2018.zip 
python-1u222-ea-str-b08-sec-10_dec_2018.zip 
python-1u222-ea-str-b08-sec_bcc-10_dec_2018.zip 
pyt-1u222-ea-str-security.zip 
pyt-1u222-ea-str-security_ecc.zip 
pyt-1u222-ea-str.zip 
epython-1u222-ea-str-b08-10_dec_2018.zip 
epyt-1u222-ea-str.zip 

这些文件名中的日期将更改。我正在寻找一种方法来检查每个文件的存在,但是日期不同。

在我的问题中,python-1u222-ea-str-b08-10_dec_2018.zip只是一个例子。