Python3 RE正则表达式完全指南
6 浏览量
更新于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 上传
2022-08-04 上传
2023-12-25 上传
2023-11-16 上传
2023-05-24 上传
2020-12-23 上传
2020-12-23 上传
weixin_38660327
- 粉丝: 8
- 资源: 952
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录