正则表达式
什么是正则表达式?
正则表达式 (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():返回匹配的子串的起始和结束位置