判断一个字符串是否是日期
时间: 2023-06-22 16:23:45 浏览: 86
判断一个字符串是否是日期,可以使用正则表达式进行匹配。以下是判断日期的正则表达式:
```python
import re
def is_date(str):
pattern = re.compile(r'^\d{4}-\d{1,2}-\d{1,2}$')
if not pattern.match(str):
return False
year, month, day = map(int, str.split('-'))
if month < 1 or month > 12 or day < 1 or day > 31:
return False
if month in [4, 6, 9, 11] and day > 30:
return False
if month == 2:
if day > 29 or (day == 29 and not (year % 400 == 0 or (year % 4 == 0 and year % 100 != 0))):
return False
return True
```
该函数使用了正则表达式判断字符串是否符合日期格式,并且使用了逻辑判断排除了不合法的日期。其中:
- 正则表达式 `r'^\d{4}-\d{1,2}-\d{1,2}$'` 匹配 `YYYY-MM-DD` 格式的字符串。
- 使用 `split` 函数将字符串按 `-` 分割为年、月、日三个部分。
- 根据月份判断该月的天数是否正确,如果月份为 2 月还需要判断是否为闰年。
- 如果以上判断都通过,则返回 True,否则返回 False。
使用该函数可以方便地判断一个字符串是否符合日期格式。