Python re.purge() メソッド
re.purge()はPythonのreモジュール内で正規表現キャッシュをクリアするための関数です。
Pythonのreモジュールはコンパイル済みの正規表現オブジェクトをキャッシュしてパフォーマンスを向上させますが、re.purge()このキャッシュをクリアすることができます。
単語の意味: purgePurge は「クリア」という意味です。
基本構文とパラメータ
構文形式
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 个正则表达式 缓存已释放
使用シーンの説明
- メモリを解放する必要がある場合に使用します
- 正規表現を変更後に再ロードする必要がある場合に使用します
- 長時間実行されるプログラムでは定期的にキャッシュをクリアします
その他の拡張機能