1. 什么是正则表达式
- 正则表达式是对字符串操作的一种逻辑公式
- 实现定义好的一些特定的字符,及这些特定的字符的组合
- 组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑
2. 常见匹配模式
2.1 特殊代码
代码 | 说明 |
---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字 |
\s | 匹配任意的空白符 |
\d | 匹配任意数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
2.2 重复
代码 | 说明 |
---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n, m} | 重复n到m次 |
2.3 反义
代码 | 说明 |
---|
\W | 匹配任意不是字母和数字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
^X | 匹配除x以外的任意字符 |
^aeiou | 匹配除aeiou外的任意字符 |
3. re.match()
- 尝试从从字符串起始位置匹配一个模式,如果不是起始位置匹配,返回None
- 语法:re.match(正则表达式,要匹配的字符串,匹配方式)
常用匹配方式:
- re.l:使匹配对大小写不敏感
- re.S:使匹配包括换行在内的所有字符
4. re.search()
- re.search()扫描整个字符串返回第一个成功匹配的结果
5. re.findall()
搜索字符串,以列表的形式返回全部能匹配的字符串
6. re.compile()
- 将正则字符串编译成正则表达式对象,以便于复用该匹配模式
7. re.sub()
- 替换字符串中每一个匹配的字符串后返回替换后的字符串
- 将匹配到的内容进行替换
- 语法:re.sub(正则表达式,替换成的字符串,原字符串)
IN:
content = 'hello 123456 world'
content = re.sub('\d+','',content)
content
OUT:
'hello world'
- 需要注意的是\1是第一个匹配的结果,为了防止转义字符的问题,一般在前面加上r
content = re.sub('\d+',r'1 7890',content)
content