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

Skupina pro zachycení regulárních výrazů PostgreSQL ve výběru

Pokud se pokoušíte zachytit shodu regulárního výrazu, která je výsledkem výrazu, pak substring by udělal trik:

select substring ('I have a dog', 'd[aeiou]g')

Vrátí jakoukoli shodu, v tomto případě "pes."

Myslím, že chybějícím článkem toho, o co jste se pokoušeli výše, bylo, že musíte dát výraz, který chcete zachytit, do závorek. regexp_matches by v tomto případě fungovalo (pokud byste zahrnuli závorky kolem výrazu, který chcete zachytit), ale při každé shodě by vrátilo pole textu. Pokud se jedná o jednu shodu, substring je docela pohodlné.

Pokud se tedy pokoušíte vrátit stuff, zakroužkujte zpět k vašemu příkladu tehdy a jen tehdy, když je na začátku sloupce:

select substring (column, '^(stuff)')

nebo

select (regexp_matches (column, '^(stuff)'))[1]


  1. Oracle APEX:místní nabídka

  2. chyba serveru asp ' Nelze načíst soubor nebo sestavení ', ale sestavení tam určitě je.

  3. Úprava funkce PLSQL pro návrat více řádků ze stejného sloupce

  4. Oprava „Aritmetická chyba přetečení při převodu výrazu na datový typ int“ v SQL Server