我想检查一个字符串是否包含dddd-dd-dd
格式的数字。我对检查有效日期不感兴趣。
示例:
输入:att_token_2015-09-02
预期输出:True
输入:att_token_1234-99-99
预期输出:True
输入:att_token_1234
预期输出:错误
编辑:我还没有尝试过任何程序。我只想要它的正则表达式。
(\d+)-(\d+)-(\d+)
这是我到目前为止所尝试过的,它会返回数字,但我不知道这是否正确。
答案 0 :(得分:1)
\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