正则表达式介绍
1.正则表达式一种用来匹配字符串的强有力武器,用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,就认为它“匹配”了,否则,该字符串就是不合法的
2.正则表达式是高级的字符串匹配处理方式
3.正则表达式的原理:通过描述匹配内容的类型和长度来获取字符串当中的指定字符
正则表达式的划分
1.对类型的描述
(1)原样匹配
通常原样匹配会结合其他匹配一起出现
r''或者r"",表示中间的部分就是全部的原含义,没有任何的特殊含义
原样匹配,通常会结合其他匹配一起出现
import re
str_ = "suner suner"
str_1 = re.findall(r"u",str_)
print(str_1) # 结果:['u', 'u']
(2). 匹配,匹配所有非换行的字符
import re
str_ = "suner yao xue xi"
str_1 = re.findall(r".", str_) # 匹配任意一个
str_2 = re.findall(r"..", str_) # 匹配任意两个
str_3 = re.findall(r"...", str_) # 匹配任意三个
str_4 = re.findall(r"....", str_) # 匹配任意四个
print(str_1) # 结果:['s', 'u', 'n', 'e', 'r', ' ', 'y', 'a', 'o', ' ', 'x', 'u', 'e', ' ', 'x', 'i']
print(str_2) # 结果:['su', 'ne', 'r ', 'ya', 'o ', 'xu', 'e ', 'xi']
print(str_3) # 结果:['sun', 'er ', 'yao', ' xu', 'e x']
print(str_4) # 结果:['sune', 'r ya', 'o xu', 'e xi']
s.u:在“s”和“u”中间的任何字符,如:suu、syu,swu等
.sun:匹配在字符串sun前面的任意一个字符
(3)\ 转义,将特殊字符的特殊含义转义掉,变为一个普通的匹配字符串
import re
str_ = "zhe ge shi 20.000.00"
str_1 = re.findall(r"\.", str_)
print(str_1) # 结果:['.', '.']
(4)\d 匹配数字
规则:在正则匹配当中,大写和小写匹配的内容是相反的
import re
str_ = "zhe ge 20000 na ge 5000"
str_1 = re.findall(r"\d", str_) # 匹配一个数字
str_2 = re.findall(r"\d\d", str_) # 匹配连续两个数字
print(str_1) # 结果:['2', '0', '0', '0', '0', '5', '0', '0', '0']
print(str_2) # 结果:['20', '00', '50', '00']
(5)\D 匹配非数字
import re
str_ = "zhe $$ 20000 na **a5000"
str_1 = re.findall(r"\D", str_) # 匹配一个非数字
str_2 = re.findall(r"\D\D", str_) # 匹配连续两个非数字
print(str_1) # 结果:['z', 'h', 'e', ' ', '$', '$', ' ', ' ', 'n', 'a', ' ', '*', '*', 'a']
print(str_2) # 结果:['zh', 'e ', '$$', ' n', 'a ', '**']
(6)