sql >> Database >  >> RDS >> PostgreSQL

Hoe een naam te splitsen in achternaam plus initialen

De regex gebruikt in PostgreSQL wordt feitelijk geïmplementeerd met behulp van een softwarepakket dat is geschreven door Henry Spencer. Het is niet vreemd, het heeft zijn eigen voordelen, eigenaardigheden.

Een van de verschillen met de gebruikelijke NFA-regex-engines is de woordgrens. Hier, \Y komt overeen met een niet-woordgrens. De rest van de patronen die je nodig hebt, zijn vrij bekende.

U moet dus '^(\w+)|\Y\w' . gebruiken patroon en een '\1' vervanging.

Details :

  • ^ - begin van snaaranker
  • (\w+) - Groep vastleggen 1 overeenkomende tekens van 1+ woord (hier wordt naar verwezen met \1 van het vervangingspatroon)
  • | - of
  • \Y\w - een woordteken dat wordt voorafgegaan door een ander woordteken.

De \1 heet een vervangende genummerde terugverwijzing , dat plaatst gewoon de waarde die is vastgelegd met Groep 1 in het vervangingsresultaat.



  1. Nog een reden om sp_updatestats te vermijden

  2. Databasecontrolepunten in SQL Server

  3. Migratie schrijven om de primaire sleutel van het model te wijzigen met ManyToManyField

  4. ORA-00913 Fout bij gebruik van veel IN-instructie