正则表达式,用来匹配
#导入re模块
import re
result=re.match(“abc”,“abc.cn”)
print(result.group())
re1=re.match("\w",“hello python”)
print(re1.group())
re2=re.match(".",“hello python”)
print(re1.group())
$
需求:匹配163.com的邮箱地址
email_list = [“xiaoWang@163.com”, “xiaoWang@163.comheihei”, “.com.xiaowang@qq.com”]
for email in email_list:
ret = re.match("[\w]{4,20}@163.com$", email)
if ret:
print("%s 是符合规定的邮件地址,匹配后的结果是:%s" % (email, ret.group()))
else:
print("%s 不符合要求" % email)
|
#匹配出0-100之间的数字
ret = re.match("[1-9]?\d", “8”)
print(ret.group()) # 8
ret = re.match("[1-9]?\d", “78”)
print(ret.group()) # 78
不正确的情况
ret = re.match("[1-9]?\d", “08”)
print(ret.group()) # 0
修正之后的
ret = re.match("[1-9]?\d$", “08”)
if ret:
print(ret.group())
else:
print(“不在0-100之间”)
添加|
ret = re.match("[1-9]?\d$|100", “8”)
print(ret.group()) # 8
ret = re.match("[1-9]?\d$|100", “78”)
print(ret.group()) # 78
ret = re.match("[1-9]?\d$|100", “08”)
print(ret.group()) # 不是0-100之间
ret = re.match("[1-9]?\d$|100", “100”)
print(ret.group()) # 100
( )
#匹配出163、126、qq邮箱
ret = re.match("\w{4,20}@(163|126|qq).com", “test@126.com”)
print(ret.group()) # test@126.com
ret = re.match("\w{4,20}@(163|126|qq).com", “test@qq.com”)
print(ret.group()) # test@qq.com
ret = re.match("\w{4,20}@(163|126|qq).com", “test@gmail.com”)
if ret:
print(ret.group())
else:
print(“不是163、126、qq邮箱”) # 不是163、126、qq邮箱
\
匹配出 < html > hh < / html >
# 能够完成对正确的字符串的匹配
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</html>")
print(ret.group())
# 如果遇到非正常的html格式字符串,匹配出错
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</htmlbalabala>")
print(ret.group())
# 正确的理解思路:如果在第一对<>中是什么,按理说在后面的那对<>中就应该是什么
# 通过引用分组中匹配到的数据即可,但是要注意是元字符串,即类似 r""这种格式
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", "<html>hh</html>")
print(ret.group())
# 因为2对<>中的数据不一致,所以没有匹配出来
test_label = "<html>hh</htmlbalabala>"
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", test_label)
if ret:
print(ret.group())
else:
print("%s 这是一对不正确的标签" % test_label)