我想检查字符串是否包含dddd-dd-dd
格式的数字。我对检查有效日期不感兴趣。
例子:
-
输入:
att_token_2015-09-02
期望输出:True
-
输入:
att_token_1234-99-99
期望输出:True
-
输入:
att_token_1234
期望输出:False
EDIT:我没有在任何程序中尝试过这个。我只是想要它的正则表达式模式。
(d+)-(d+)-(d+)
这是我到目前为止所尝试的,它返回给我的数字,但我不知道这是否正确。
d{4}-d{2}-d{2}
将匹配yyyy-mm-dd模式中的数字,但它不会匹配日期—例如,它将匹配1234-99-99。您可以使用任何语言访问匹配,并尝试对匹配进行日期解析,以查看它是否为日期。
您在示例中使用的是d+
,它将匹配类似于33-3333333-333的内容,这不是日期。
如果你担心像123456-12-1234567
这样的字符串在不匹配的时候匹配,你可以使用负的遍历:
(?<!d)d{4}-d{2}-d{2}(?!d)
查看实际示例:https://regex101.com/r/nR0hB2/1