PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So teilen Sie einen Namen in Nachnamen plus Initialen auf

Der in PostgreSQL verwendete Regex wird tatsächlich mit einem von Henry Spencer geschriebenen Softwarepaket implementiert. Es ist nicht seltsam, es hat seine eigenen Vorteile, Besonderheiten.

Einer der Unterschiede zu den üblichen NFA-Regex-Engines ist die Wortgrenze. Hier \Y entspricht einer Nicht-Wort-Grenze. Die restlichen Muster, die Sie benötigen, sind ziemlich bekannt.

Sie müssen also '^(\w+)|\Y\w' verwenden Muster und ein '\1' Ersatz.

Einzelheiten :

  • ^ - Beginn des String-Ankers
  • (\w+) - Einfangende Gruppe 1 passendes 1+-Wort-Zeichen (dies wird mit \1 bezeichnet aus dem Ersatzmuster)
  • | - oder
  • \Y\w - ein Wortzeichen, dem ein anderes Wortzeichen vorangestellt ist.

Der \1 wird als ersetzende nummerierte Rückreferenz bezeichnet , die nur den mit Gruppe 1 erfassten Wert in das Ersetzungsergebnis einfügt.