Python re.escape() 方法

Python re 模块 Python re 模块


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)

运行结果预期:

原始: 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())

运行结果预期:

找到: 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)

运行结果预期:

不转义: []
转义后: ['$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 "未找到")

运行结果预期:

查找结果: python*

Python re 模块 Python re 模块