输入一个字符串,通过设计正则表达式pattern,分别编写以下问题的python函数,实现相应的功能: (1) 验证输入的字符串是否是有效的手机号码。手机号码由11位数字组成,以1开头,格式如下:1XX-XXXX-XXXX。 (2) 验证输入的字符串是否是有效的日期。日期格式为YYYY-MM-DD,其中YYYY表示四位年份,MM表示两位月份,DD表示两位日。 (3) 验证输入的字符串是否是有效的邮政编码。假定某地区邮政编码为6位数字,格式如:123456。
时间: 2024-02-09 17:12:58 浏览: 91
好的,我可以帮你解决这个问题。以下是对应的三个Python函数的实现:
```python
import re
def validate_phone_number(number):
pattern = r'^1\d{2}-\d{4}-\d{4}$'
return bool(re.match(pattern, number))
def validate_date(date):
pattern = r'^\d{4}-\d{2}-\d{2}$'
if not bool(re.match(pattern, date)):
return False
year, month, day = map(int, date.split('-'))
if year < 1000 or year > 9999 or 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 year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
if day > 29:
return False
elif day > 28:
return False
return True
def validate_postal_code(code):
pattern = r'^\d{6}$'
return bool(re.match(pattern, code))
```
这三个函数分别使用正则表达式pattern对输入的字符串进行验证,返回布尔值表示是否合法。其中,validate_phone_number()函数验证是否是有效的手机号码,validate_date()函数验证是否是有效的日期,validate_postal_code()函数验证是否是有效的邮政编码。
阅读全文