Python re.purge() 方法
re.purge() 是 Python re 模块中用于清除正则表达式缓存的函数。
Python 的 re 模块会缓存已编译的正则表达式对象以提高性能,re.purge() 可以清除这个缓存。
单词释义: purge 是清除、 Purge 的意思。
基本语法与参数
语法格式
re.purge()
参数说明
- 无参数
函数说明
- 返回值: 无返回值。
- 作用: 清除 re 模块内部缓存的所有已编译正则表达式。
实例
示例 1:基本用法
实例
import re
# 先使用一些正则表达式
re.search(r'\d+', '123')
re.match(r'\w+', 'hello')
# 清除缓存
re.purge()
print("缓存已清除")
# 先使用一些正则表达式
re.search(r'\d+', '123')
re.match(r'\w+', 'hello')
# 清除缓存
re.purge()
print("缓存已清除")
运行结果预期:
缓存已清除
示例 2:查看缓存效果
实例
import re
# 使用相同的模式多次 - 会使用缓存
for _ in range(3):
re.search(r'\d+', '123')
# 清除缓存
re.purge()
print("缓存已清除,之后重新创建缓存")
re.search(r'\d+', '456')
# 使用相同的模式多次 - 会使用缓存
for _ in range(3):
re.search(r'\d+', '123')
# 清除缓存
re.purge()
print("缓存已清除,之后重新创建缓存")
re.search(r'\d+', '456')
运行结果预期:
缓存已清除,之后重新创建缓存
示例 3:内存释放
实例
import re
import sys
# 创建大量不同的正则表达式(会占用缓存)
patterns = [re.compile(r'\d+' + str(i)) for i in range(100)]
print(f"创建了 {len(patterns)} 个正则表达式")
# 清除缓存
re.purge()
print("缓存已释放")
import sys
# 创建大量不同的正则表达式(会占用缓存)
patterns = [re.compile(r'\d+' + str(i)) for i in range(100)]
print(f"创建了 {len(patterns)} 个正则表达式")
# 清除缓存
re.purge()
print("缓存已释放")
运行结果预期:
创建了 100 个正则表达式 缓存已释放
使用场景说明
- 当需要释放内存时使用
- 当正则表达式修改后需要重新加载时使用
- 在长时间运行的程序中定期清理缓存
Python re 模块
点我分享笔记