\ 转移,比如\?
^ 以..开头
. 匹配任意字符
* 出现0次或者无数次
$ 以…结尾
? 非贪婪模式, 匹配0次或1次
- 贪婪模式: 默认反向匹配,贪婪模式可控,视情况而定
() 只提取子字符串, 用group(1)提取, 默认从1开始
+ 至少一次或者无数次
{} 匹配几个
- {2, } 至少出现两个
- {2, 5} 至少出现两个,最多出现5个
| 匹配两边任意一个,两者都一样取最前面的
- line = ‘kxx123’
- result = re.match(‘(kxx|kx)123’, line)
[] 括号里任何都可以
- 1[378][0-9][9] 匹配手机号码
- [^] 取反
- 符号进入[]以后, 没有任何意义,就是普通的字符串
\s 匹配空格
- \S 匹配非空格
\w A-Z和a-z和0-9和_
- \W 取反
[\u4E00-\u9FA5] 匹配汉字
- line = ‘我在**大学’
- result = ‘.*([\u4E00-\u9FA5]+大学)’
\d 匹配任意数字
- \D 取反
re.findall() 方法能够以列表的形式返回能匹配的子串
re.match(dotall) 只会返回第一个匹配的,其他能够匹配的不会被返回,默认匹配全部
re.search() 扫描整个字符串并返回第一个成功的匹配
re.split() 切割字符串
re.sub() 替换