sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man delar upp ett namn i efternamn plus initialer

regex som används i PostgreSQL är faktiskt implementerat med ett mjukvarupaket skrivet av Henry Spencer. Det är inte konstigt, det har sina egna fördelar, egenheter.

En av skillnaderna från de vanliga NFA regex-motorerna är ordet gräns. Här, \Y matchar en icke-ordsgräns. Resten av mönstren du behöver är ganska kända.

Så du måste använda '^(\w+)|\Y\w' mönster och en '\1' ersättare.

Detaljer :

  • ^ - start av strängankare
  • (\w+) - Fångningsgrupp 1 matchande 1+ ord tecken (detta kommer att hänvisas till med \1 från ersättningsmönstret)
  • | - eller
  • \Y\w - ett ord char som föregås av ett annat ordtecken.

\1 kallas en ersättnings numrerad tillbakareferens , som bara sätter värdet som fångats med grupp 1 i ersättningsresultatet.



  1. importera CSV till MYSQL via PHP

  2. Hur överför man Oracle-dumpfil till AWS RDS-instans?

  3. Hur man gör en SUMMA utan grupp efter

  4. SQL-fråga:Hämta ordnade rader från en tabell