PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come dividere un nome in cognome più iniziali

Il regex utilizzato in PostgreSQL è in realtà implementato utilizzando un pacchetto software scritto da Henry Spencer. Non è strano, ha i suoi vantaggi, le sue peculiarità.

Una delle differenze rispetto ai soliti motori regex NFA è la parola limite. Qui, \Y corrisponde a un limite non di parole. Il resto dei modelli di cui hai bisogno sono abbastanza noti.

Quindi, devi usare '^(\w+)|\Y\w' pattern e un '\1' sostituzione.

Dettagli :

  • ^ - inizio dell'ancora di stringa
  • (\w+) - Cattura gruppo 1 caratteri di 1 o più parole corrispondenti (questo sarà indicato con \1 dal modello di sostituzione)
  • | - o
  • \Y\w - un carattere di parola preceduto da un altro carattere di parola.

Il \1 è chiamato sostituzione backreference numerato , che inserisce semplicemente il valore acquisito con il Gruppo 1 nel risultato di sostituzione.