Python3正则表达式学习笔记
学习前准备:导入re模块
import re
一、re的核心函数
1 - re.compile(pattern[, flags]) 编译正则表达式,速度快 2 - re.match(pattern, string, flags=0) 只从字符串最开始进行匹配,只返回一个结果 3 - re.search(pattern, string, flags=0) 从字符串任意位置开始匹配,返回第一次找到的内容 4 - re.findall(pattern, string, flags=0) 查找所有匹配到的,并返回一个列表 5 - re.finditer(pattern, string, flags=0) 查找所有匹配到的,返回一个可迭代的对象 6 - re.sub(pattern, repl, string, count=0, flags=0) 替换匹配到的内容 7 - re.split(pattern, string[, maxsplit=0, flags=0]) 按照能够匹配的子串将字符串分割后返回列表 其中:match()、search()、finditer()返回的内容是一个对象,数据需要提取
二、常用的匹配对象的方法
1 - group() 返回整个匹配的对象,或者特殊编号的子组---->group()、group(1)、group(2) 2 - groups() 将所有匹配到的子组以元组的方式返回 3 - start() 返回匹配开始的位置 4 - end() 返回匹配结束的位置 5 - span() 返回匹配到的开始位置和结束位置,以元组方式返回
三、正则模式
^ 匹配字符串的开头 $ 匹配字符串的末尾 . 除了换行符之外的任意字符 | A | B,表示匹配正则表达式 A 或者 B \ 转义 [] 匹配包含的任意一个字符,^如果出现在首位则表示取反 {n} 前面的字符连续出现n次 {m,n} 前面的字符连续出现最少m次,最多m次 {m,} 连续出现最少m次 {,n} 等价于{0,n} * 前面的字符连续出现0次或无数次 + 前面的字符连续出现1次或无数次 ? 前面的字符出现0次或1次 () 分组:1、后向引用\数字,2、group()获取 (?P<name>正则表达式) 有名分组:1、后向引用(?P=name),2、group()来获取
四、正则表达式修饰符,可选标志
re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M 多行匹配,影响 ^ 和 $ re.S 使 . 匹配包括换行在内的所有字符 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解
五、在正则前加“r”表示:不要转义,要用原生字符串