Python re.escape() 方法
re.escape() 是 Python re 模块中用于转义正则表达式特殊字符的函数。
它会将字符串中的所有正则表达式特殊字符(如 .、*、? 等)转义,使它们被视为普通字符。
单词释义: 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 模块
点我分享笔记