Метод Python re.escape()

Python re 模块Модуль re в Python


re.escape()— это Pythonreфункция модуля, используемая дляэкранирования специальных символов регулярных выражений.

Он возьмёт все специальные символы регулярного выражения в строке (например,.、*、?и т. д.) и экранирует их, заставляя обрабатывать как обычные символы.

Определения слов: escapeозначает «спасаться» и «убегать».


Базовый синтаксис и параметры

Формат синтаксиса

re.escape(string)

Описание параметра

  • строка: Строка, которую нужно экранировать

Описание функций

  • Возвращаемое значение: Возвращает экранированную строку.

Примеры

Пример 1: Базовое использование

Пример

import re

# Экранирование строки, содержащей специальные символы
text = "example.com?foo=1"

result = re.escape(text)

print("Original:", text)
print("Escaped:", result)

Ожидаемый вывод:

原始: example.com?foo=1
转义后: example\.com\?foo\=1

Пример 2: Использование в поиске

Пример

import re

# Поиск строки, содержащей точку (литеральный поиск, не регулярное выражение)
text = "File path: 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 = "цена: $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* — это здорово"

# Экранируйте пользовательский ввод перед поиском
pattern = re.escape(user_input)
result = re.search(pattern, text)

print("Результат поиска:", result.group() if result else "Не найдено")

Ожидаемый вывод:

查找结果: python*

Python re 模块Модуль re в Python

Другие расширения