sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL-infångningsgrupp för reguljära uttryck i select

Om du försöker fånga regex-matchningen som resulterade från uttrycket, sedan substring skulle göra susen:

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

Skulle returnera vilken match som helst, i det här fallet "hund."

Jag tror att den felande länken i det du försökte ovan var att du måste sätta uttrycket du vill fånga inom parentes. regexp_matches skulle fungera i det här fallet (hade du inkluderat parenteser runt uttrycket du ville fånga), men skulle returnera en rad text med varje matchning. Om det är en matchning, substring är lite bekvämt.

Så, cirkla tillbaka till ditt exempel, om du försöker returnera stuff om och bara om det är i början av en kolumn:

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

eller

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


  1. Hur man får alla tabeller med eller utan primärnyckelbegränsning i SQL Server Database - SQL Server / TSQL Tutorial 59

  2. Så här löser du ORA-29283:ogiltig filoperation

  3. Hur får man räkningen av nuvarande månads söndagar i psql?

  4. Hur man lägger till främmande nyckel (MySQL)