sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL regexp_replace s odpovídajícím výrazem

OK, našel jsem odpověď. Zřejmě potřebuji dvojité escapování zpětného lomítka v nahrazení. Také potřebuji E -předpona a dvojitá zpětná lomítka ve vyhledávacím vzoru na starších verzích postgresu (v mém případě 8.3). Konečný kód vypadá takto:

regexp_replace('abc [def]', E'([\\[\\]\\(\\)\\\\\?\\|_%])', E'\\\\\\1', 'g')

Ano, vypadá to hrozně, ale funguje to :)



  1. Laravel výmluvný stavitel dotazů - Součet se skupinou na vztahu

  2. Jak najít řádky, které mají hodnotu obsahující malé písmeno

  3. Oracle 11g získá všechny odpovídající výskyty regulárním výrazem

  4. codeigniter:Aktualizace tabulky z jiné tabulky pomocí relace