点击上方分类专栏、进行系统性学习(文末可扫码领取资料)
- 正则表达式(Regular Expression)是计算机科学的一个概念。“Regular”一般被译为“正则”、“正规”、“常规”。此处的“Regular”即“规则、规律”的意思,Regular Expression 即“描述某种规则的表达式”。
- 正则表达式使用单个字符串来匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
1、匹配单字符(元字符)
字符 | 功能 |
. | 匹配任意 1 个字符( |
[...] | 匹配 |
[^...] | 匹配除了字符组中字符之外的字符 |
\d | 匹配数字(0-9) |
\D | 匹配非数字 |
\s | 匹配空白,即 |
\S | 匹配非空白 |
\w | 匹配单词字符(字母、数字、下划线 |
\W | 匹配非单词字符 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\b | 匹配一个单词的结尾 |
a|b | 匹配字符 a 或字符 b |
() | 正则表达式分组所用符号,匹配括号内的表达式,表示一个组 |
2、转义字符("\"
)
- 如果使用正则表达式匹配特殊字符,则需在字符前加
"\"
表示转义。常见的特殊字符:* + ? ^ $ [] () {} | \
- 正则表达式里使用
"\"
作为转义字符。如果要匹配文本中的"\"
,正则表达式里将需要 4 个反斜杠(其中的两个对应为转移字符)转换为 2 个反斜杠,再匹配到字符串中的两个反斜杠(含转移字符对应的反斜杠)。Python 里的原生字符串很好地解决了这个问题,有了原始字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
-
- Python 中在字符串前面加上
r
表示原生字符串
- Python 中在字符串前面加上
3、匹配多个字符
字符 | 功能 |
* | 匹配前一个字符出现 0 次或无限次 |
+ | 匹配前一个字符出现 1 次或无限次 |
? | 匹配前一个字符出现 1 次或 0 次 |
{m} | 匹配前一个字符出现 m 次 |
{m,} | 匹配前一个字符出现至少 m 次 |
{m,n} | 匹配前一个字符出现 m 到 n 次 |
4、匹配边界
字符 | 功能 |
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
\b | 匹配一个单词的边界 |
\B | 匹配非单词边界 |
5、匹配分组
字符 | 功能 |
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组 num 匹配到的字符串 |
(?P<name>) | 给分组起别名 |
(?P=name) | 引用别名为 name 分组匹配到的字符串 |
6、贪婪匹配、非贪婪匹配
- Python 里数量词默认是贪婪的:总是尝试匹配尽可能多的字符
- 非贪婪:总是尝试匹配尽可能少的字符
- 可以在
*
、?
、+
、{m,n}
后面加上?
,使贪婪变成非贪婪。
标签:字符,匹配,Python,介绍,正则表达式,斜杠,字符串 From: https://blog.csdn.net/m0_66491750/article/details/136957447融码一生:专注 Python、Linux、C/C++、机器学习 & 深度学习 & NLP 领域创作
下方扫码关注公众号,获取完整 PDF / 线上电子书