# 字符功能 # . 匹配任意1个字符(除了 ) # [ ] 匹配[ ]中列举的字符 # d 匹配数字,即0-9 # D 匹配非数字,即不是数字 # s 匹配空白,即 空格,tab键 # S 匹配非空白 # w 匹配单词字符,即a-z、A-Z、0-9、_ # W 匹配非单词字符 import re # 如果hello的首字符大写,那么正则表达式需要大写的H ret = re.match("H","Hello Python") print(ret.group()) #H # 大小写h都可以的情况 ret = re.match("[hH]","hello Python") print(ret.group()) #h ret = re.match("[hH]","Hello Python") print(ret.group()) #H # 匹配0到9第一种写法 ret = re.match("[0123456789]","7Hello Python") print(ret.group()) #7 # 匹配0到9第二种写法 ret = re.match("[0-9]","7Hello Python") print(ret.group()) #7 # 使用d进行匹配 ret = re.match("嫦娥d号","嫦娥1号发射成功") print(ret.group()) #嫦娥1号 ret = re.match('小.','小三小四小五张三') print(ret.group()) ret = re.findall('小.','小三小四小五张三') print(ret) #['小三', '小四', '小五'] ret = re.findall('小.?','小三小四小五张三') print(ret) #['小三', '小四', '小五'] # 需求:匹配出,一个字符串第一个字母为大写字母,后面为小写 # 这些小写字母可有可无 #coding=utf-8 import re ret = re.match("[A-Z][a-z]*","Mm") print(ret.group()) #Mm ret = re.match("[A-Z][a-z]*","Aabcdef") print(ret.group()) #Aabcdef # 需求:匹配出,0到99之间的数字 #coding=utf-8 import re ret = re.match("[1-9]?[0-9]","7") print(ret.group()) #7 ret = re.match("[1-9]?[0-9]","33") print(ret.group()) #33 # 需求:匹配出,8到20位的密码,可以是大小写英文字母、数字、下划线 #coding=utf-8 import re ret = re.match("[a-zA-Z0-9_]{6}","12a3g45678") print(ret.group()) #12a3g4 ret = re.match("[a-zA-Z0-9_]{8,20}","1ad12f23s34455ff66") print(ret.group()) #1ad12f23s34455ff66 # 需求:匹配163.com的邮箱地址 #coding=utf-8 import re # 正确的地址 ret = re.match("[w]{4,20}@163.com", "xiaoWang@163.com") print(ret.group()) #xiaoWang@163.com # 不正确的地址 ret = re.match("[w]{4,20}@163.com", "xiaoWang@163.comheihei" ) print(ret.group()) #xiaoWang@163.com # 通过$来确定末尾 ret = re.match("[w]{4,20}@163.com$", "xiaoWang@163.comheihei") # print(ret.group()) 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