Задать вопрос
@r10d10

Как вставить переменную в re.sub?

Посмотрел много мануалов, везде просто текст заменяют, не понимаю как синтаксически вставить переменную
text = 'ab b b b'
var = 'b'
result = re.sub(r'[^a-z]var', "", text)

Замены конечно же не происходит потому что var он воспринимает как текст а не как переменную. А как сделать чтобы данные из переменной в регулярку подставились?
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Несколько вариантов решения задачи:
import re

text = "ab b b b"
var = "b"

text1 = f"[^a-z]{var}"
print(re.sub(text1, "", text)) # ab

text2 = "[^a-z]{}".format(var)
print(re.sub(text2, "", text)) # ab

text3 = "[^a-z]" + var
print(re.sub(text3, "", text)) # ab

text4 = "[^a-z]%s" % var
print(re.sub(text4, "", text)) # ab

P.S. Примеры выше не используйте при формировании sql запросов, для этого используйте параметризованные запросы (prepared statements), либо t строки (python>=3.14):
text5 = t"[^a-z]{var}"
print(re.sub(text5, "", text)) # ab
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы