正则表达式
正则表达式的作用就是检查输入的字符串是否与某种模式相匹配。
1、函数
基本语句及释义
(1)re.match(pattern, string, flags=0) :从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none
(2)re.search(pattern, string, flags=0):扫描整个字符串并返回第一个成功的匹配
(3)re.sub(pattern, repl, string, count=0, flags=0) :用于替换字符串中的匹配项
(4)re.compile(pattern, flags]) compile函数:用于编译正则表达式,生成一个正则表达式(Pattern)对象,供match()和search()这两个函数使用。
(5)re.findall(string,pos, endpos): 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
(6)re.split(pattern, string, maxsplit=0, flags=0) :按照能够匹配的子串将字符串分割后返回列表
一些常见的修饰符及相关描述:
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
1.1 re.match函数
输出结果为:
1.2 re.search 函数
输出结果为:
search()函数和match()的使用方法类似,唯一的区别就是match()函数只能从字符串的开始位置匹配成功才返回匹配对象,否则为None,而search()可以从任意位置匹配,直到第一次匹配到。
1.3 re.sub 函数
输出结果为:
1.4 re.compile 函数
输出结果为:
1.5 re.findall 函数
输出结果为:
1.6 re.spilt函数
输出结果为:
2、正则表达的运用
2.1匹配电话号码
其中:联通号码开头一般为:130 131 132 145 146 155 156 166 167 171 175 176 185 186 196
电信号码的开头一般为: 133 149 153 173 174 177 180 181 189 191 193 199
移动号码的格式有:
134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 195 198以联通的检验语句为例:“^13[0-2]|14[56]|15[56]|16[67]|17[156]|18[56]|196\d{8}$”:以13开头的有130,131,132,“|”这个符号的意思为或者,以此后面的意思为14开头的有145,146,以此类推。
2.2 匹配qq号码