Python re.escape() メソッド
re.escape()は Pythonreモジュール内で使用され、正規表現の特殊文字をエスケープする関数です。
この関数は、文字列内のすべての正規表現特殊文字(例:.、*、?など)をエスケープして、それらを通常の文字として扱えるようにします。
単語の意味: escape「エスケープ」「逃げる」という意味です。
基本構文とパラメータ
構文形式
re.escape(string)
パラメータの説明
- string:エスケープする文字列
関数の説明
- 戻り値:エスケープ後の文字列を返します。
実例
例1:基本的な使い方
実例
import re
# 特殊文字を含む文字列をエスケープ
text = "example.com?foo=1"
result = re.escape(text)
print("元の文字列:", text)
print("エスケープ後:", result)
# 特殊文字を含む文字列をエスケープ
text = "example.com?foo=1"
result = re.escape(text)
print("元の文字列:", text)
print("エスケープ後:", result)
実行結果の期待値:
原始: example.com?foo=1 转义后: example\.com\?foo\=1
例2:検索での使用
実例
import re
# ドットを含む文字列を検索(リテラルとして検索。正規表現ではない)
text = "ファイルパス: C:\\Users\\test.txt"
# バックスラッシュとドットをエスケープ
pattern = re.escape("C:\\Users\\test.txt")
result = re.search(pattern, text)
if result:
print("見つかりました:", result.group())
# ドットを含む文字列を検索(リテラルとして検索。正規表現ではない)
text = "ファイルパス: C:\\Users\\test.txt"
# バックスラッシュとドットをエスケープ
pattern = re.escape("C:\\Users\\test.txt")
result = re.search(pattern, text)
if result:
print("見つかりました:", result.group())
実行結果の期待値:
找到: C:\Users\test.txt
例3:エスケープと非エスケープの比較
実例
import re
text = "price: $100"
# エスケープしない場合 - $ は正規表現では特殊文字(行末)
result1 = re.findall(r'$100', text)
# エスケープした場合 - $ は通常の文字として扱われる
result2 = re.findall(re.escape('$100'), text)
print("エスケープなし:", result1)
print("エスケープ後:", result2)
text = "price: $100"
# エスケープしない場合 - $ は正規表現では特殊文字(行末)
result1 = re.findall(r'$100', text)
# エスケープした場合 - $ は通常の文字として扱われる
result2 = re.findall(re.escape('$100'), text)
print("エスケープなし:", result1)
print("エスケープ後:", result2)
実行結果の期待値:
不转义: [] 转义后: ['$100']
例4:ユーザー入力の処理
実例
import re
# ユーザーが入力する可能性のある特殊文字
user_input = "python*"
text = "python* is great"
# ユーザー入力をエスケープしてから検索
pattern = re.escape(user_input)
result = re.search(pattern, text)
print("検索結果:", result.group() if result else "見つかりません")
# ユーザーが入力する可能性のある特殊文字
user_input = "python*"
text = "python* is great"
# ユーザー入力をエスケープしてから検索
pattern = re.escape(user_input)
result = re.search(pattern, text)
print("検索結果:", result.group() if result else "見つかりません")
実行結果の期待値:
查找结果: python*
その他の拡張
Python re モジュール