正则表达式
什么是正则表达式?
正则表达式
(Regular Expression 即 RegExp),是计算机科学的一个概念,它通常被用来搜索、替换那些符合某个规则的文本。
它可以用来匹配 特殊字符串 或 有特殊搭配原则 的字符串
在 Python 中通过内置的 re
模块提供对正则表达式的支持。
在学习 re
模块的使用之前,先要了解几个关于 正则表达式
的知识:转义符、元字符
转义符
转义符用于标识特殊字符,通常以反斜杠 \
开头,使得某些字符具有特殊含义,或解除它们的特殊含义。
例子:
转义符的使用 | 说明 |
---|---|
\n | 换行符 |
\t | 制表符(Tab) |
\\ | 反斜杠 |
\' | 单引号 |
\r | 回车符 |
\b | 退格符 |
\f | 换页符 |
"asd\"dsa" | 在字符串中加入双引号 |
元字符
元字符
是 正则表达式 中具有特殊含义的字符,通常用于匹配特定的模式。
元字符 | 描述 |
---|---|
. | 匹配除换行符(\n 、\r )之外的任何单个字符 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
* | 匹配前一个字符 0 次 或 多次 |
+ | 匹配前一个字符 1 次 或 多次 |
? | 匹配前一个字符 0 次 或 1 次 |
{n} | 匹配前一个字符恰好 n 次 |
{n,} | 匹配前一个字符 至少 n 次 |
{n, m} | 匹配前一个字符 至少 n 次,至多 m 次 |
\d | 匹配数字(等价于 [0-9] ) |
\D | 匹配非数字 |
\w | 匹配字母、数字或下划线(等价于 [a-zA-Z0-9_] ) |
\W | 匹配非字母、数字或下划线 |
\s | 匹配空白字符串(包括空格、制表符、换行符等) |
\S | 匹配非空白字符串 |
[] | 匹配括号内的任意一个字符 |
() | 组,表示一个子模式,可以用于提取匹配内容 |
re
模块
在使用 re
模块时需要先进行引用。
py
import re
常用函数
re.match(pattern, string)
:从字符串开头匹配模式re.search(pattern, string)
:从字符串中搜索模式re.findall(pattern, string)
:返回所有匹配的子串re.sub(pattern, repl, string)
:替换匹配的子串re.split(pattern, string)
:根据模式分割字符串
匹配对象
如果匹配成功,match()
、search()
函数会返回一个匹配对象(如果没匹配到返回 None
),包含以下方法:
group()
:返回匹配的子串start()
:返回匹配的子串的起始位置end()
:返回匹配的子串的结束位置span()
:返回匹配的子串的起始和结束位置