正则表达式

# 字符功能
# . 匹配任意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
原文地址:https://www.cnblogs.com/chvv/p/10188597.html