代码之家  ›  专栏  ›  技术社区  ›  gus

类似“Date:01Jan2022”的字符串的正则表达式

  •  0
  • gus  · 技术社区  · 2 年前

    我正在试图找到一个字符串,该字符串如下所示: “日期:2022年1月1日”,其中日期部分可以是DDMMMYYYY。 如何在python中为此编写正则表达式?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Tim Biegeleisen    2 年前

    假设缩写月份总是三个字母,您可以简单地使用:

    inp = ["01JAN2022", "blah"]
    for i in inp:
        if re.search(r'^\d{2}[A-Z]{3}\d{4}$', i):
            print("Found a date: " + i)
        else:
            print("Not a date:   " + i)
    

    更准确地说,我们可以使用包含所有12个缩写月份的替代:

    inp = ["01JAN2022", "blah"]
    regex = r'^\d{2}(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\d{4}$'
    for i in inp:
        if re.search(regex, i):
            print("Found a date: " + i)
        else:
            print("Not a date:   " + i)