1. 匹配电话号码
编写一个程序,从字符串中匹配电话号码。
电话号码的格式为:
- 开头是 1
- 第二位在3-9之间
- 后9位可以是任意数字。
代码如下:
import re
def match_phone_number(string):
pattern = r"^(1[3-9]\d{9})$"
match = re.match(pattern, string)
if match:
return True
else:
return False
string = "1234567"
print(match_phone_number(string))
string = "13555555555"
print(match_phone_number(string))
解释
- ^$是开始和结束的标志;
- 1表示第一位必须是1;
- [3-9]表示第二位必须是3-9之间的数字;
- \d表示后面部分是一个数字,{9}这样的数字有9个,不限区间0-9;
我们学到了什么
- 知道了开始和结束的标志是 ^ $;
- 知道了原来字符的位置有如此严格的占位限制;
- 知道了 [] 代表字符集合;
- 知道了 3-9 代表区间;
- 知道了 \d 代表数字匹配;
- 知道了 {} 代表要匹配多少次;
2. 匹配日期
编写一个程序,从字符串中匹配日期。
日期的格式为:
- 年月日共有八位数字;
代码如下:
import re
from datetime import datetime
def match_date(string):
pattern = r"^\d{8}$"
match = re.match(pattern, string)
if match:
try:
datetime.strptime(string, "%Y%m%d")
return True
except ValueError:
return False
else:
return False
string = "20210101"
print(match_date(string))
string = "19991231"
print(match_date(string))
解释
- ^$是开始和结束的标志;
- \d表示后面部分是一个数字,{8}这样的数字有8个,不限区间0-9;
我们学到了什么
- 知道了开始和结束的标志是 ^ $;
- 知道了原来字符的位置有如此严格的占位限制;
- 知道了 \d 代表数字匹配;
- 知道了 {} 代表要匹配多少次;
日期的格式应该有更复杂的格式,大家可以去研究研究,但这种应该是最简单了。欢迎留言讨论。
下一部分 邮箱、IP地址