字符串处理始终是一个至关重要的任务。无论是数据清洗、验证输入格式,还是自动化脚本编写,字符串操作几乎无处不在。而Python的`re`模块为我们提供了一种强大的工具——正则表达式(Regular Expression),简称regex。这种神奇的模式匹配语言可以通过简单的语法定义复杂的模式,并且在代码中灵活运用。
一、正则表达式的 basics
1. 什么是正则表达式?
正则表达式是一种用来定义字符模式的语言,广泛应用于字符串匹配、数据处理和脚本编写中。它允许程序根据预先定义的模式对字符串进行精确的操作,比如匹配特定的子串或者替换不符合要求的内容。
2. 基本组成部分
元字符:特殊字符表示特定含义或操作。
点号`.`:匹配任意单个字符(除了换行符)。
星号`*`:零或多次重复之前的元素。
问号`?`:零次或一次重复之前的元素。
字面字符:普通字母、数字、符号直接表示其自身。例如,`a`匹配字母“a”。下面为一些常用组成部分的表格:
以下是正则表达式基本符号及其功能的总结:
| 符号 | 定义 | 功能 |
|--------|-------------------------------|-------------------------------|
| . | 任何单个字符(除了换行) | 替代多个字符中的一个 |
| * | 零次或多次重复 | 让前面的元素出现零到无限次 |
| ? | 零次或一次重复 | 允许前驱元素可选 |
| [] | 表示一个包含指定的字符集合 | 匹配该集合中的一个或多个字符 |
| " | 表示另一个字符集合 | 匹配指定集合中的特定字符 |
| \ | 转义特殊元字符 | 允许后面符号匹配其预期值 |
| $ | 指定位字符串的开始/结束位置 | 确保匹配严格位于该位置 |
| _ | 句尾的位置 | 表示句尾,限定前面元素的位置 |
| ! | 否定 | 用于否定后面的匹配操作 |
| | | 要么...要么 | 在多个选项中进行优先选择 |
此表格总结了正则表达式中最基本符号及其作用的要点。
3. 匹配模式(pattern)
使用正则表达式可以定义特定的模式,例如:
`cat`:直接匹配字符串“cat”。
`cat+`:匹配“cat”这个单词一次或多次。
`[abc]`:匹配"“a”、“b”或者“c”中的任何一个。
下面的re库的常用函数:
-------------------|-