一、正则表达式库
正则表达式是一种表达式语句,用于对字符串类型数据进行操作,包含从字符串中筛选出满足表达式条件的信息、将字符串中的内容进行替换等功能,在python语言中用re库实现正则表达式,用import将re库导入代码程序中。
1.匹配字符串
match()函数
在re模块中,re.match(参数1, 参数2)会尝试从字符串的第一个字符开始匹配指定模式,只有当模式在字符串起始位置完全匹配时才返回参数1的内容,否则返回None。
使用形式:
python
match(参数1,参数2)
示例:
python
import re
# 从起始位置匹配成功
print(re.match(r'abc', 'abcdef')) #输出为 <re.Match object; span=(0, 3), match='abc'>
# 非起始位置有匹配但返回None
print(re.match(r'cde', 'abcdef')) #输出为 None
search()函数
search()函数的功能是在整个字符串中查找第一个匹配项。search()会从字符串的起始位置开始对比,直到找到第一个符合的子串,然后返回包含匹配成功的信息;如果遍历完整个字符串仍未找到匹配,则返回None。
使用形式:
python
search(参数1,参数2)
示例:
python
import re
# 查找第一个数字序列
text = '用户ID: 12345, 订单号: 67890'
match = re.search(r'\d+', text)
if match:
print(f"找到匹配: {match.group()}") # 找到匹配: 12345
print(f"匹配位置: {match.span()}") # 匹配位置: (6, 11)
findall()函数
使用形式:
python
findall(参数1,参数2)
功能是从参数2(字符串类型数据)中查找满足参数1(正则表达式)的内容,如果匹配了多个参数1,则返回匹配成功的全部信息。
示例:
python
import re
text = '用户A: 13800138000, 用户B: 13900139000, 用户C: 13700137000'
# 提取所有手机号
phones = re.findall(r'1[3-9]\d{9}', text)
print(phones) # ['13800138000', '13900139000', '13700137000']
2.正则表达式
正则表达式 (Regular Expression) 是一种强大的文本处理工具,它通过定义特定模式来匹配、查找和替换文本。在 Python 中,无论是标准库re
还是第三方库regex
,都提供了丰富的 API 支持,使开发者能够高效处理各种复杂的文本场景。本文将从基础语法到高级应用,系统介绍 Python 中正则表达式的核心概念、使用技巧及最佳实践。
表示字符范围:
python
[abc] # 匹配a、b或c中的任意一个字符
[^abc] # 匹配除a、b、c之外的任意字符
[a-z] # 匹配任意小写字母
[A-Z] # 匹配任意大写字母
[0-9] # 匹配任意数字
[a-zA-Z0-9] # 匹配任意字母或数字
表示字符出现次数:
python
^ # 匹配字符串的起始位置
$ # 匹配字符串的结束位置
* # 匹配前面的子表达式零次或多次
+ # 匹配前面的子表达式一次或多次
? # 匹配前面的子表达式零次或一次
{n} # 精确匹配n次
{n,} # 至少匹配n次
{n,m} # 匹配至少n次且最多m次
表示同一类字符:
python
\d # 等价于[0-9],匹配任意数字
\D # 等价于[^0-9],匹配任意非数字字符
\s # 等价于[\t\n\r\f\v],匹配任意空白字符(空格、制表符、换行符等)
\S # 等价于[^\t\n\r\f\v],匹配任意非空白字符
\w # 等价于[a-zA-Z0-9_],匹配任意字母、数字或下划线
\W # 等价于[^a-zA-Z0-9_],匹配任意非字母、数字或下划线字符
a* # 匹配零个或多个a(如:'', 'a', 'aa', 'aaa'等)
a+ # 匹配一个或多个a(如:'a', 'aa', 'aaa'等)
a? # 匹配零个或一个a(如:'', 'a')
a{3} # 精确匹配3个a(如:'aaa')
a{3,} # 匹配至少3个a(如:'aaa', 'aaaa', 'aaaaa'等)
a{3,5} # 匹配3到5个a(如:'aaa', 'aaaa', 'aaaaa')
3.贪婪模式和非贪婪模式
默认情况下,量词是贪婪的,即尽可能多地匹配字符。通过在量词后添加?
,可以将其变为非贪婪模式,即尽可能少地匹配字符:
示例:
python
text = '<div>内容</div>'
# 贪婪匹配(默认)
re.findall(r'<.*>', text) # 结果: ['<div>内容</div>']
# 非贪婪匹配
re.findall(r'<.*?>', text) # 结果: ['<div>', '</div>']
4.或和组
在 Python 正则表达式中,"或"和 "组"是构建复杂模式的两大核心机制。"或" 允许在模式中定义多个可选分支,而 "组" 则用于将多个字符作为一个整体处理,并支持捕获匹配内容。
"或" 操作符(|)的用法与特性
在正则表达式中,竖线|
用于表示 "或" 关系,允许匹配多个模式中的任意一个。示例:
python
import re
pattern = re.compile(r'apple|banana') # 匹配apple或banana
text = 'I like apple and banana'
print(pattern.findall(text)) # ['apple', 'banana']
"或" 操作符的优先级较低,通常需要用括号进行分组以明确匹配范围,多个分支按从左到右的顺序进行匹配,一旦找到匹配项就停止搜索。因此,较长或更具体的模式应放在前面,在字符类[]
内部,|
表示普通字符而非 "或" 操作符。
"组"的类型与应用
使用()
定义的捕获组会保存匹配的子串,可通过索引或名称引用
示例:
python
# 数字索引引用
pattern = re.compile(r'(\d{4})-(\d{2})-(\d{2})')
text = '2023-10-05'
match = pattern.match(text)
print(match.group(1)) # '2023'(年)
# 命名组引用
pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})')
print(match.group('month')) # '10'
多层嵌套时,索引按左括号出现的顺序分配,在模式内部使用\1
、\2
等语法引用前面的捕获组,使用(?:)
定义的非捕获组仅用于分组,不保存匹配结果。
5.sub()和compile()方法
sub()
用于替换字符串中的匹配项,示例:
python
text = 'Hello 123, World 456'
pattern = re.compile(r'\d+')
print(pattern.sub('NUM', text)) # 'Hello NUM, World NUM'
compile()
是re
模块中的核心函数,用于创建预编译的模式对象:
python
import re
# 编译正则表达式
pattern = re.compile(r'正则表达式模式')
# 使用模式对象进行匹配
match = pattern.search('待匹配的文本')
二、第三方库
1.第三方库的介绍
在 Python 的技术生态中,第三方库是连接基础语法与实际应用的桥梁。这些由全球开发者社区贡献的代码集合,将 Python 的灵活性与扩展性发挥到极致,使其能够轻松应对从简单脚本到复杂系统的各类开发需求。本文将从定义本质、分类体系、技术价值和选择框架四个维度,全面剖析 Python 第三方库的核心特征。
数据科学与分析领域:从采集到可视化的全流程工具
人工智能与机器学习领域:从模型训练到部署的全链路支持
自动化与运维领域:从脚本到系统的效率工具
科学计算与工程领域:从仿真到可视化的专业工具
游戏开发与创意编程领域:从 2D 到 3D 的开发工具
2.不同领域的第三方库
Python 第三方库的生态之所以强大,在于其覆盖了几乎所有技术领域的解决方案。从 Web 开发到人工智能,从数据分析到嵌入式开发,每个领域都形成了各具特色的库集群。本文将深入剖析六大主流领域的核心库,解析其技术特点、适用场景及选型策略,为开发者提供全面的工具选择参考。
Web 开发领域:从后端到前端的全栈工具链
3.第三方库的安装
常见的有2种:
通过win+r输入cmd打开命令指示符后写入以下形式:
python
pip install 库名
但这样通常下载很慢,因为这里用的是外网,可以通过搜索中国网站下载库会快很多。
例如:pip install 库名称 -i https://pypi.tuna.tsinghua.edu.cn/simple
再一种就是通过pycharm的解释器下载第三方库,与上述方法差不多。

搜索所需要的第三方库,可以在选项中输入中国网站加快下载速度。
4.安装报错的解决方法
1.操作系统缺失支撑软件
解决方法:通过error错误提示下载缺失的支撑软件。
2.计算机的操作系统版本与第三方库的版本之间存在不兼容的情况。
解决方法:使用命令:
python
pip install 库名 == 版本号
3.pip工具版本过低。
解决方法:通过命令:
python
python -m pip install --upgrade pip
更新当前pip工具。
5.pip工具的常用命令
python
pip uninstall 库名 #卸载库
pip list #列出所有已安装的库
pip show 库名 #查看特定库的详细信息
pip download 库名 #下载第三方库安装包但不安装
-h #获取pip使用帮助
6.Pyinstaller库
1.Pyinstaller库的介绍和安装
PyInstaller 是一个开源的 Python 库,能够将 Python 脚本打包成独立的可执行文件(.exe、.app 等),无需目标机器安装 Python 解释器或相关依赖库。其工作原理是分析脚本的依赖关系,将 Python 解释器、脚本本身及所有依赖文件打包到一个文件夹或单个可执行文件中,实现 "一次打包,到处运行" 的效果。
打开命令提示符(CMD)或 PowerShell执行安装命令:
python
# 使用pip安装最新版本
pip install pyinstaller
# 如需指定版本(例如5.13.2)
pip install pyinstaller==5.13.2
2.使用
PyInstaller 的命令结构简洁明了,核心语法为:
python
pyinstaller 代码文件路径+代码文件名
3.其他Pyinstaller命令
-F:
使打包后只产生一个list文件夹,且文件夹中只存在一个打包后的可执行文件。
python
pyinstaller -F 代码文件路径+代码文件名
-i:
用于指定可执行文件图标的实用参数,在程序窗口中添加图标。
python
pyinstaller -i 代码文件路径+代码文件名