sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo dividir un nombre en apellido más iniciales

La regex utilizada en PostgreSQL en realidad se implementa utilizando un paquete de software escrito por Henry Spencer. No es raro, tiene sus propias ventajas, peculiaridades.

Una de las diferencias con los motores de expresiones regulares NFA habituales es el límite de palabras. Aquí, \Y coincide con un límite que no es una palabra. El resto de patrones que necesitas son bastante conocidos.

Entonces, necesitas usar '^(\w+)|\Y\w' patrón y un '\1' reemplazo.

Detalles :

  • ^ - comienzo del ancla de cadena
  • (\w+) - Grupo de captura 1 caracteres de 1 palabra o más que coincidan (se hará referencia a esto con \1 del patrón de reemplazo)
  • | - o
  • \Y\w - una palabra char que está precedida por otro carácter de palabra.

El \1 se denomina reemplazo referencia inversa numerada , que solo pone el valor capturado con el Grupo 1 en el resultado de reemplazo.