我正在编写一个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时,它不起作用,但是在其他日期上却起作用。 有人可以帮我在这里找到问题吗?
答案 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'>