正则表达式检查日期

Sha*_*shi 5 python regex

嗨,我已经写了正则表达式来检查其中字符串有什么样的字符 - 或者.或/或:或AM或PM或空格.如果字符串包含除AMP之外的字符,则我希望使case失败.进口重新

Datere = re.compile("[-./\:?AMP ]+")

FD = { 'Date' : lambda date : bool(re.search(Datere,date)),}

def Validate(date):

    for k,v in date.iteritems():
        print k,v
        print FD.get(k)(v)
Run Code Online (Sandbox Code Playgroud)

输出:

Validate({'Date':'12/12/2010'})
Date 12/12/2010
True
Validate({'Date':'12/12/2010 12:30 AM'})
Date 12/12/2010
True

Validate({'Date':'12/12/2010 ZZ'})
Date 12/12/2010
True  (Expecting False)
Run Code Online (Sandbox Code Playgroud)

编辑:验证({'日期':'12122010'})日期12122010错误(期待错误)

我怎么能找到字符串除了char APM以外的任何建议.谢谢.

buc*_*ley 1

尝试一下:

^[-./\:?AMP \d]*$
Run Code Online (Sandbox Code Playgroud)

对您的正则表达式的更改是

  • 它以 ^ 和 $ 为锚定,这意味着整行应该匹配而不是部分匹配
  • \d 添加到字符类中以允许数字

现在正则表达式基本上读取为 1 行上允许的符号列表

如果您希望空字符串不匹配,请将 * 更改为 +