匹配单个字符
1. 匹配某个字符
# 示例:
ret = re.match("he", text)
print(ret.group())
2. 点:匹配字符
text = "hello"
ret = re.match(".", text)
print(ret.group())
3. \d:匹配任意数字【0-9】
text = "123456"
ret = re.match("\d", text)
print(ret.group())
4. \D:匹配任意非数字
text = "+"
ret = re.match("\D", text)
print(ret.group())
5. \s:匹配空白字符(\n, \t, \r, 空格)
text = " \r "
ret = re.match("\s", text)
print(ret.group())
6. \w:匹配的是a-z 和 A-Z 以及数字和下划线
text = "asd"
ret = re.match("\w", text)
print(ret.group())
7. \W:匹配的是与\w正好相反
text = ";"
ret = re.match("\W", text)
print(ret.group())
8. []:表示组合方式,只要满足中括号中的字符 ,就可以匹配;
text = "0821-88888888"
ret = re.match('[\d\-]+', text) # + :代表,要符合[]规则里面的所有数据
print(ret.group())
8.1. []的形式代替\d
text = "-da1"
ret = re.match('[^0-9]+', text) # ^ :代表非^后面的规则的所有数据
print(ret.group())
8.2 []的形式代替\w
text = "_"
ret = re.match('[a-zA-Z0-9_]', text)
print(ret.group())
8.3. []的形式代替\W
text = "+"
ret = re.match('[^a-zA-Z0-9_]', text)
print(ret.group())
################ 匹配多个字符 ##############
9 . *: 可以匹配0个或者个任意多个字符
text = "adfa123"
ret = re.match('\d*', text)
print(ret.group())
10. +:匹配1个或者多个字符,至少要匹配1个字符
text = "adsf+asdf"
ret = re.match('\w+', text)
print(ret.group())
11. ?:匹配一个或者0个(要么没有,要么就只有1个)
text = "ads+asdf"
ret = re.match('\w?', text)
print(ret.group())
12. {m}: 匹配m个字符
text = "ads+asdf"
ret = re.match('\w{2}', text)
print(ret.group())
13. {m , n}: 匹配m-n个字符
text = "adsaadd"
ret = re.match('\w{1,5}', text)
print(ret.group())
14. ^(脱字号):在[]中表示取反;其它情况要从第一个字符中判断,如果不满足要求,则后面就不在匹配
text = "hello"
ret = re.match('^h', text)
print(ret.group())
15. &:表示以某某结尾
text = "XXXX@163.com"
ret = re.match('\w+@163.com$', text) # 取以163.com结尾才进行匹配
print(ret.group())
16. |: 匹配多个字符串或者表达式
text = "http"
ret = re.match('(http|https|ftp)', text)
print(ret.group())
17. 贪婪模式(尽量匹配多个字符) 与非贪婪模式(只会匹配最小的那个条件, 加个?号)
text = "0123456"
ret = re.match('\d+?', text) #非贪婪模式, 去掉? 就是贪婪模式
print(ret.group())
text = "<h1>标题<h1>"
ret = re.match('<.+?>', text)
print(ret.group())
########## 小案例 #########
# 1. 验证手机号码
text = "18212364589"
ret = re.match('1[34578]\d{9}', text)
print(ret.group())
2. 验证邮箱
text = "test123_@qq.com.cn"
ret = re.match('\w+@[a-z0-9]+\.[a-z]+', text)
print(ret.group())
3. 验证URL
text = "https://www.kuaidaili.com/free/intr/"
ret = re.match('(http|https|ftp)://[^\s]+', text) # | 代表或的意思,有多个要用()-->((http|https|ftp))
print(ret.group())
4. 验证身份证
text = "51082420200101711x"
ret = re.match('\d{17}[\dxX]', text) # | 代表或的意思,有多个要用()-->((http|https|ftp))
print(ret.group())
5. # 匹配0-100之间的数据
# 可以出现:1, 2, 3, 10, 100
# 不能出现:09, 101
text = "100"
ret = re.match('[1-9]\d?$|100$', text) # | 代表或的意思,有多个要用()-->((http|https|ftp))
print(ret.group())