搜索

pdf文档 Python 3.12 正则表达式 HOWTO

404.43 KB 17 页 0 下载 61 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
本文是关于在 Python 中通过 re 模块使用正则表达式的入门教程。文档介绍了正则表达式的定义、基本语法、编译和应用方法,包括匹配字符、重复、分组、前视断言等功能。同时,还讨论了正则表达式的优化、常见问题及使用注意事项,如反斜杠灾难、多行匹配、扩展模式等。
AI总结
# Python 3.12 正则表达式 HOWTO 总结 ## 概述 正则表达式(Regular Expressions,简称 RE 或 regex)是一种嵌入 Python 并通过 `re` 模块实现的编程语言。它用于定义字符串匹配规则,支持以下操作: - 检查字符串是否与表达式匹配 - 查找字符串中的匹配项 - 修改字符串或按规则分割字符串 正则表达式会被编译为字节码,由 C 语言引擎执行。本文不涉及优化,重点介绍基本用法。 ## 简单正则 ### 匹配字符 - 字母和符号通常直接匹配自身。 - 元字符(如 `.`、`^`、`$`、`*`、`+`、`?`、`{`、`}`、`[`、`]`、`\`、`|`、`(`、`)`)具有特殊含义。 - 字符类(`[]`)用于匹配字符集合,支持范围(如 `a-z`)和取反(`^` 在开头时表示排除)。 ### 重复 - `*`:匹配零次或更多次。 - `+`:匹配一次或更多次。 - `?`:匹配零次或一次。 - `{m,n}`:匹配至少 `m` 次,最多 `n` 次。`m` 或 `n` 可省略,分别表示最小或最大无限制。 ## 使用正则表达式 ### 编译正则表达式 - 使用 `re.compile()` 将正则字符串编译为模式对象,支持多次调用。 - 示例: ```python import re p = re.compile(r'ab*') ``` ### 反斜杠灾难 - 正则表达式中的反斜杠用于转义特殊字符,但在 Python 字符串中也需要转义。 - 使用原始字符串(`r''`)简化处理。 ### 应用匹配 - `match()`:检查正则是否从字符串开头匹配。 - `search()`:扫描字符串,查找任意位置的匹配。 - 示例: ```python m = p.match('tempo') print(m.span()) # (0, 5) ``` ### 模块级函数 - `re` 模块提供 `match()`、`search()`、`findall()`、`sub()` 等函数,直接使用正则字符串。 - 示例: ```python print(re.match(r'From\s+', 'From amk Thu May 14 19:12:10 1998').span()) ``` ### 编译标志 - 支持多个标志(如 `re.IGNORECASE`、`re.MULTILINE`、`re.VERBOSE`)修改匹配行为。 - 示例: ```python p = re.compile(r'ab*', re.IGNORECASE) ``` ## 更多模式能力 ### 分组 - 捕获组 `()` 用于提取子字符串。 - 非捕获组 `(?:...)` 用于分组但不捕获内容。 - 命名组 `(?P...)` 便于引用。 ### 前视断言 - `(?=...)`:肯定型前视断言,匹配当前位置后的内容。 - `(?!...)`:否定型前视断言,匹配当前位置后不包含的内容。 ## 修改字符串 ### 搜索和替换 - `re.sub()` 用于替换匹配项,支持使用函数作为替换内容。 - 示例: ```python def hexrepl(match): return hex(int(match.group())) print(re.sub(r'\d+', hexrepl, 'Call 65490 for printing...')) ``` ## 常见问题 1. **字符串方法**:固定字符串操作优先使用字符串方法(如 `replace()`、`translate()`)。 2. **`match()` 和 `search()`**:`match()` 只检查开头匹配,`search()` 扫描整个字符串。 3. **贪婪与非贪婪**:默认为贪婪匹配(尽可能多匹配),非贪婪匹配(尽可能少匹配)使用 `?`。 4. **`re.VERBOSE`**:启用详细模式,忽略空格和注释,便于编写易懂的正则。 ## 反馈 文档由 A.M. Kuchling 撰写,欢迎反馈至 `docs@python.org`。 --- 以上总结涵盖了文档的核心内容,重点突出正则表达式的使用方法、常见功能和注意事项。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 5 页请下载阅读 -
文档评分
请文明评论,理性发言.