| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
本文是关于在 Python 中通过 re 模块使用正则表达式的入门教程。正则表达式是一种嵌入 Python 的微小编程语言,用于匹配字符串或执行字符串操作。文档介绍了正则表达式的语法、使用方法,包括匹配字符、重复、编译正则表达式、分割字符串、搜索和替换等功能。同时,还讨论了反斜杠灾难、贪婪与非贪婪匹配、使用 re.VERBOSE 等常见问题和解决方案。 | ||
| AI总结 | ||
# Python 正则表达式入门总结
本文是《Python 3.10.15 正则表达式 HOWTO》的简要总结,涵盖正则表达式的基础概念、使用方法及常见问题。
---
## 1. 概述
正则表达式(Regular Expressions,简称 RE 或 regex)是一种嵌入 Python 并通过 `re` 模块实现的微型编程语言。它用于匹配字符串的特定模式,常见的应用场景包括验证字符串、查找或替换内容等。正则表达式会被编译为字节码,由 C 语言引擎执行,但本文不涉及优化问题。
正则表达式语言虽小,但并非所有字符串处理任务都可以用其完成。对于复杂任务,编写 Python 代码可能更清晰。
---
## 2. 简单正则
### 2.1 匹配字符
大多数字符(如字母、数字)可以直接匹配自身。特殊字符(元字符)需要转义或在特定上下文中使用。元字符包括:`^`、`$`、`*`、`+`、`?`、`{`、`}`、`[`、`]`、`\`、`|`、`(`、`)`。
字符类(`[ ]`)用于匹配特定字符集合。例如:
- `a-z` 匹配任意小写字母。
- `a|b` 匹配 `a` 或 `b`。
### 2.2 重复
元字符 `*`、`+`、`?` 和 `{m,n}` 用于指定字符的重复次数:
- `*`:匹配零次或更多次。
- `+`:匹配一次或更多次。
- `?`:匹配零次或一次。
- `{m,n}`:匹配至少 `m` 次,最多 `n` 次。
例如:
- `ab*` 匹配 `a` 后跟零个或多个 `b`。
- `a{3,5}` 匹配 `aaa` 到 `aaaaa`。
---
## 3. 使用正则表达式
### 3.1 编译正则表达式
正则表达式通过 `re.compile()` 编译为模式对象,支持以下方法:
- `match()`:检查正则是否从字符串开头匹配。
- `search()`:扫描字符串,查找任意位置的匹配。
- `findall()`:返回所有匹配子字符串的列表。
- `finditer()`:返回所有匹配的迭代器。
### 3.2 反斜杠灾难
正则表达式中的反斜杠与 Python 字符串中的转义冲突,导致重复转义。为简化,建议使用原始字符串(`r'...'`)表示正则。
### 3.3 应用匹配
匹配失败时,`match()` 和 `search()` 返回 `None`。成功时返回匹配对象,包含匹配内容、起始和结束位置等信息。
---
## 4. 更多模式能力
### 4.1 更多元字符
- `.`:匹配任意字符(除了换行符)。
- `^` 和 `$`:分别匹配字符串的开头和结尾。
- `\b`:匹配单词边界。
- `\d`:匹配任意数字。
### 4.2 分组
使用 `()` 创建分组,支持捕获和重用匹配内容。非捕获组(`(?:...)`)不捕获内容。
### 4.3 前视断言
零宽度断言用于匹配特定位置,不消耗字符。例如:
- `^abc`:匹配字符串开头为 `abc` 的内容。
- `(?!...)`:负向断言,匹配不在特定模式后的内容。
---
## 5. 修改字符串
### 5.1 分割字符串
`re.split()` 可以根据正则表达式分割字符串,例如:
```python
re.split(r'\W', 'Hello, World!') # ['Hello', 'World', '']
```
### 5.2 搜索和替换
`re.sub()` 可以用正则替换字符串中的特定模式。例如:
```python
re.sub(r'\d+', '###', 'The number is 123') # 'The number is ###'
```
---
## 6. 常见问题
### 6.1 使用字符串方法
固定字符串的替换(如 `str.replace()`)通常比正则更高效。在不涉及复杂模式时,优先使用字符串方法。
### 6.2 `match()` 和 `search()`
- `match()` 只检查字符串开头是否匹配。
- `search()` 会扫描整个字符串,查找任意位置的匹配。
### 6.3 贪婪与非贪婪
默认情况下,正则表达式是贪婪的,会尽可能匹配更多字符。非贪婪模式(如 `*?`)会尽可能少地匹配字符。
### 6.4 使用 `re.VERBOSE`
`re.VERBOSE` 标志允许在正则中添加注释和空格,提高可读性。
---
## 总结
正则表达式是 Python 中强大的字符串处理工具,但其复杂性可能导致新手困惑。通过理解基本语法、合理使用模块功能,并注意常见问题,可以更高效地完成字符串匹配和修改任务。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
6 页请下载阅读 -
文档评分














Python 3.10.15 正则表达式 HOWTO