Python3 RE正则表达式完全指南
174 浏览量
更新于2024-08-29
收藏 356KB PDF 举报
"Python3中的正则表达式(Regex)是一种强大的文本处理工具,用于处理字符串,进行模式匹配和查找。在Python中,通过导入`re`模块来使用正则表达式功能。以下是对正则表达式的详细总结:"
1. **引入正则模块**
要在Python3中使用正则表达式,首先要导入内置的`re`模块。这个模块提供了各种正则表达式相关的函数,如`match`、`search`、`findall`等。
```python
import re
```
2. **`match()`方法**
`match()`函数用于从字符串的开始位置进行匹配。它接收两个参数:一个是正则表达式模式,另一个是要匹配的字符串。如果匹配成功,返回一个匹配对象;否则,返回`None`。
```python
result = re.match(pattern, str)
if result is not None:
# 如果匹配成功,可以使用group()方法提取匹配内容
matched_content = result.group()
```
3. **正则表达式基础**
- **单字符匹配规则**
- `.`:匹配任意单个字符(除了换行符`\n`)
- `[]`:匹配中括号内列出的任何字符
- `\d`:匹配数字(等价于`[0-9]`)
- `\D`:匹配非数字字符
- `\s`:匹配空白字符(包括空格、制表符、换页符等)
- `\S`:匹配非空白字符
- `\w`:匹配字母、数字或下划线(等价于`[a-zA-Z0-9_]`)
- `\W`:匹配非单词字符(`\w`的反面)
- **数量规则**
- `*`:匹配前面的字符0次或多次
- `+`:匹配前面的字符1次或多次
- `?`:匹配前面的字符0次或1次
- `{m}`:匹配前面的字符恰好m次
- `{m,}`:匹配前面的字符至少m次
- `{m,n}`:匹配前面的字符m到n次
4. **手机号码验证示例**
假设我们想要验证一个手机号码是否符合规则,可以编写如下的正则表达式:
```python
pattern = "1[35678]\d{9}" # 匹配以1开头,第二位是3、5、6、7或8,其余9位是任意数字的手机号码
phoneStr = "18230092223"
result = re.match(pattern, phoneStr)
if result is not None:
print(result.group())
```
5. **原始字符串(raw string)**
在Python中,以`r`开头的字符串称为原始字符串,它不会进行转义。例如,`r"\nabc"`将被视为包含`\n`、`a`、`b`和`c`四个字符的字符串,而不是一个换行符后跟`abc`。
在正则表达式中,使用原始字符串可以简化对反斜杠`\`的处理,避免转义问题。例如,无需写成`"\\d"`,可以直接用`"\d"`表示数字。
6. **边界匹配**
- `^`:匹配字符串的开始位置
- `$`:匹配字符串的结束位置
- `\b`:匹配单词的边界(单词与非单词字符之间)
- `\B`:匹配非单词边界(单词字符与单词字符之间)
正则表达式在Python中非常强大,能够处理复杂的字符串匹配和查找任务,广泛应用于数据清洗、文本分析和网络爬虫等领域。掌握好正则表达式对于提升Python编程能力大有裨益。
2021-11-12 上传
2021-09-16 上传
2022-06-04 上传
2023-12-25 上传
2023-11-16 上传
2023-04-30 上传
2023-06-01 上传
2023-05-24 上传
2023-07-15 上传
weixin_38660327
- 粉丝: 8
- 资源: 952
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作