正则表达式匹配某些选定的日期

时间:2018-08-01 07:57:34

标签: python regex

我正在编写一个Python程序,该程序对于任何一年中的某些选定日期基本上应该返回True,即日期只能是1/1 / XXXX或4/1 / XXXX或7/1 / XXXX或10/1 / XXXX。

我为此编写了以下代码:

import re
date_value = '10/1/2018'
re.match("^[1,4,7,10]/1/[0-9]{4}$", date_value)

但是,当我提供'10 / 1/2018'作为date_value时,它不起作用,但是在其他日期上却起作用。 有人可以帮我在这里找到问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用r"^(1|4|7|10)/1/[0-9]{4}$"模式进行匹配。当您使用[1,4,7,10]时,它会尝试匹配任何字符1,4,7,10

>>> import re
>>> date_value = '10/1/2018'
>>> re.match(r"^(1|4|7|10)/1/[0-9]{4}$", date_value)
<_sre.SRE_Match object; span=(0, 9), match='10/1/2018'>