Найти - Пользователи
Полная версия: Регекспы замена значениями из словаря
Начало » Python для новичков » Регекспы замена значениями из словаря
1
Dmitrys
Добрый день!

Есть задача - извлечь при помощи регулярного выражения некоторые строки, и заменить их на значения из словаря (строка это ключ в словаре). Подскажите пожалуйста, как будет правильнее это сделать?

Я вижу два варианта:
1. использовать в re.sub() собственную функцию для замены значения, которая будет просто возвращать нужно значение из словаря
2. использовать re.findall(), найти все строки и потом уже при помощи replace() заменять значения в цикле

Сейчас использую первый вариант и вроде бы все устраивает, просто интересно правильная эта реализация или можно как-нибудь по-элегантнее это сделать?

Спасибо!
Yurietc
Чтобы можно было сказать что-то конкретное нужно выложить уже написанный код, тем более если он рабочий. А так не ясно, возможно регекспы в данной задаче и не нужны вовсе.
Как говорил кто-то из участников форума: “мой хрустальный шар сегодня сломался …”
:)
o7412369815963
вот пример
Dmitrys
Yurietc
Чтобы можно было сказать что-то конкретное нужно выложить уже написанный код, тем более если он рабочий.
Вот такой код:

import re

def replace_func(match_obj):
if match_obj.group(1) in variables:
return str(variables[match_obj.group(1)])

variables = {"variable": 256}

text = 'bla bla blahhh $variable blahhh blaaahhhhh'

result = re.sub(r'\$([\w_-]+)', replace_func, text)
Вместо одной строчки переменной text будет относительно небольшой кусок текста (15-20 kb).
Isem
Код не нужен, конечно. Тем более вы все четко и ясно написали. Как вы сделали - так и надо. Если нужен анализ, то тогда конечно нужен findall.
dimabest
шаблонизатор пишешь? :)
Dmitrys
Всем спасибо за ответы!

dimabest
шаблонизатор пишешь?
Да, только очень упрощенное - я новичок в питоне, как раз поможет лучше разобраться)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB