Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Получить значение поля по имени


Автор: tishaishii 6.7.2013, 01:24
Доброй ночи!

Составляю функцию для парсера для строк вроде
Код
Здравствуйте, %{firstname} %{fathername}!

Остальной текст и внутри него %{url}

С уважением, %{sender_sign}


Как можно с помощью рег.выров найти все
Код
\%\{([a-zA-Z0-9_]*)\}
 и заменить на значение соответствующего поля по имени?
Не хочется подключать plperl.

Автор: Zloxa 8.7.2013, 10:50
Код

select 
  replace(
    replace(
      replace (
         replace(str,' %{firstname}',first_name)
         ,'%{fathername}'
         ,fathername
      )
      ,'%{url}'
      ,url
    )
    ,'%{sender_sign}'
    ,sender_sign
  ) 
from ..
left join ...


Автор: tishaishii 30.7.2013, 14:25
Спасибо.
Именно так я делал, чтобы незадумываться и было быстро.
Установил-таки plperl. Там гораздо нагляднее, естественно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)