使用正则表达式匹配日期格式,然后判断日期是否为奇数。
以下是一个示例代码,可以匹配格式为 yyyy-mm-dd 或 yyyy/mm/dd 的日期,并判断是否为奇数日期:
import re
from datetime import datetime
# 正则表达式匹配日期
date_pattern = r"\d{4}[-/]\d{2}[-/]\d{2}"
text = "Today is 2022-03-06, and tomorrow is 2022/03/07."
dates = re.findall(date_pattern, text)
# 判断日期是否为奇数日期
for date_str in dates:
date = datetime.strptime(date_str, "%Y-%m-%d") if "-" in date_str else datetime.strptime(date_str, "%Y/%m/%d")
day_of_year = date.timetuple().tm_yday
if day_of_year % 2 == 1:
print(f"{date_str} is an odd day.")
else:
print(f"{date_str} is an even day.")
2022-03-06 is an odd day.
2022/03/07 is an even day.
其中,使用正则表达式 r"\d{4}[-/]\d{2}[-/]\d{2}" 匹配日期格式。如果字符串中出现 “-” 则使用 %Y-%m-%d 格式解析日期,如果出现 “/” 则使用 %Y/%m/%d 格式解析日期。最后使用 timetuple().tm_yday 方法获取日期在一年中的第几天,然后判断是否为奇数即可。