PostgreSQL SUBSTRING()-Funktion mit Regex-Beispiel

โšก Intelligente Zusammenfassung

PostgreSQL SUBSTRING extracts gibt einen Teil einer Zeichenkette zurรผck, wobei optional eine Startposition und eine Lรคnge angegeben werden kรถnnen. AuรŸerdem vergleicht die Funktion Text mit einem POSIX-regulรคren Ausdruck, um Muster wie Zahlen oder Codes zu extrahieren.

  • ๐Ÿ“‹ Syntax: substring( string [from start] [for length] ) gibt einen Teil der Quellzeichenkette zurรผck.
  • 1๏ธโƒฃ Position: Die Zeichenpositionen beginnen bei 1, und ohne Angabe der Lรคnge wird bis zum Ende der Zeichenkette gelesen.
  • ๐Ÿ”Ž Regulรคrer Ausdruck: SUBSTRING(string FROM pattern) extracts ist der erste Text, der einem regulรคren POSIX-Ausdruck entspricht.
  • ๐Ÿงฎ Grouping: Eine in Klammern gesetzte Gruppe im Muster gibt nur den erfassten Teil der รœbereinstimmung zurรผck.
  • ๏ธ pgAdmin: Im pgAdmin-Abfrageeditor wird jede Teilstringabfrage auf die gleiche Weise ausgefรผhrt.
  • ๐Ÿค– KI-Hilfe: KI-Assistenten generieren und erklรคren Regex-Muster fรผr genaue Teilstring-Exports.traction.

PostgreSQL SUBSTRING-Funktion mit Regex

Was ist PostgreSQL Teilzeichenfolge?

Das PostgreSQL Die Substring-Funktion hilft Ihnen dabei, โ€ฆtracDie Funktion gibt einen Teil einer Zeichenkette zurรผck. Anstatt die gesamte Zeichenkette zurรผckzugeben, wird nur ein Teil davon zurรผckgegeben, was zum Kรผrzen von Code und zum Lesen von Feldern mit fester Breite nรผtzlich ist.

Syntax

Das PostgreSQL Die Teilzeichenfolgenfunktion hat die folgende Syntax:

substring( string [from starting_position] [for length] )

KenngrรถรŸen

Die Funktion โ€žsubstringโ€œ verwendet folgende Parameter:

Schnur Die Quellzeichenfolge, deren Datentyp varchar, char, string usw. ist.
Startposition Ein optionaler Parameter. Er bezeichnet die Stelle, an der das ExtracDie Ausgabe der Zeichenkette beginnt. Wenn Sie diesen Parameter weglassen, wird die Ausgabe der Zeichenkette nicht angezeigt.tracDie Translation beginnt an Position 1, dem ersten Zeichen der Zeichenkette.
Lรคnge Ein optionaler Parameter. Er gibt die Anzahl der zu exendenden Zeichen an.tracaus der Zeichenkette ausgelesen. Wenn Sie diesen Parameter weglassen, wird die Funktion extracts von der Startposition bis zum Ende der Zeichenkette.

Beispiele

In diesem Beispiel mรถchten wir extract die ersten 4 Zeichen des Wortes Guru99:

SELECT substring('Guru99' for 4);

Der Befehl gibt Folgendes zurรผck:

PostgreSQL Teilzeichenfolge

Wir haben die Startposition nicht angegeben, daher das BeispieltracDie Teilzeichenkette begann an Position 1. Vier Zeichen wurden entfernt.tracted, um das obige Ergebnis zurรผckzugeben.

Das folgende Beispiel zeigt, wie die Startposition angegeben wird:

SELECT substring('Guru99' from 1 for 4);

Der Befehl gibt Folgendes zurรผck:

PostgreSQL Teilzeichenfolge

Wir haben festgelegt, dass das ExtracDie Teilzeichenkette sollte an Position 1 beginnen und 4 Zeichen sollten entfernt werden.tracted.

Lasst unstract 99 aus der Zeichenkette Guru99:

SELECT substring('Guru99' from 5);

Der Befehl gibt Folgendes zurรผck:

PostgreSQL Teilzeichenfolge

Wir haben die Startposition auf 5 festgelegt. Da die Anzahl der Zeichen, die ausgefรผllt werden sollen, ...tracTed wurde nicht spezifiziert, der Extraction lief bis zum Ende der Zeichenkette.

Hier ist ein weiteres Beispiel:

SELECT substring('Guru99' from 5 for 2);

Der Befehl gibt Folgendes zurรผck:

PostgreSQL Teilzeichenfolge

Wir begannen mit Extraction an Position 5, und 2 Zeichen wurden extracted.

Betrachten Sie die unten angegebene Buchtabelle:

PostgreSQL Teilzeichenketten-Buchtabelle

Wir mรถchten eine grobe Vorstellung vom Namen jedes Buches bekommen. Wir kรถnnen z. B.tracEs werden nur die ersten 15 Zeichen aus der Namensspalte der Tabelle verwendet:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Der Befehl gibt Folgendes zurรผck:

PostgreSQL Teilstring-Ergebnis

Wir haben jetzt eine ungefรคhre Vorstellung davon, wie jedes Buch heiรŸt.

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

In PostgreSQLSie kรถnnen z.B.tracEine Teilzeichenkette, die einem bestimmten regulรคren POSIX-Ausdruck entspricht. In diesem Fall verwendet die Funktion `substring` die folgende Syntax:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Hier folgt eine Erlรคuterung der oben genannten Parameter. Die Zeichenkette ist die Quellzeichenkette, deren Datentyp ist varchar, char, string usw. Das Suchmuster (matching_pattern) wird verwendet, um in der Zeichenkette zu suchen.

Beispiele

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Der Befehl gibt Folgendes zurรผck:

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

Unsere Eingabezeichenkette lautet โ€žYour age is 22โ€œ. Im Muster suchen wir nach einem numerischen Muster; wenn es gefunden wird, verwendet die Teilzeichenkettenfunktion extracEs sind nur zwei Zeichen.

Wie man mit pgAdmin Teilzeichenketten abgleicht

Sehen wir uns nun an, wie diese Aktionen mit pgAdmin durchgefรผhrt werden. Abfragen, die keine Datenbank benรถtigen, kรถnnen direkt im Abfrageeditor ausgefรผhrt werden. Gehen Sie dazu wie folgt vor:

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2) Klicken Sie in pgAdmin auf das Symbol โ€žAbfragetoolโ€œ.

Passende Teilzeichenfolgen mit pgAdmin

Das Fenster des Abfrageeditors wird geรถffnet.

Schritt 3) Geben Sie die folgende Abfrage in das Editorfenster ein.

SELECT substring('Guru99' for 4);

Schritt 4) Klicken Sie auf das Symbol โ€žAusfรผhrenโ€œ, um die Abfrage auszufรผhren.

Passende Teilzeichenfolgen mit pgAdmin

Schritt 5) Die Abfrage wurde ausgefรผhrt. Sie sollte Folgendes zurรผckgeben:

Passende Teilzeichenfolgen mit pgAdmin

Beispiel 2:

SELECT substring('Guru99' from 1 for 4);

Es sollte Folgendes zurรผckgeben:

Passende Teilzeichenfolgen mit pgAdmin

Hier ist das nรคchste Beispiel:

SELECT substring('Guru99' from 5);

Es sollte Folgendes zurรผckgeben:

Passende Teilzeichenfolgen mit pgAdmin

Beispiel 3:

SELECT substring('Guru99' from 5 for 2);

Es sollte Folgendes zurรผckgeben:

Passende Teilzeichenfolgen mit pgAdmin

Lassen Sie uns nun das Beispiel mit der Book-Tabelle der Demo-Datenbank ausfรผhren:

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2) Klicken Sie in der Navigationsleiste auf der linken Seite auf Datenbanken und anschlieรŸend auf Demo.

Passende Teilzeichenfolgen mit pgAdmin

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Schritt 4) Klicken Sie auf die Schaltflรคche โ€žAusfรผhrenโ€œ.

Passende Teilzeichenfolgen mit pgAdmin

Es sollte Folgendes zurรผckgeben:

PostgreSQL Teilstring-Ergebnis

Wir haben jetzt eine Grundidee fรผr den Namen jedes Buches.

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

Um dasselbe auf pgAdmin zu erreichen, gehen Sie wie folgt vor:

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2) Klicken Sie auf das Abfragetool-Symbol.

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

Das Fenster des Abfrageeditors wird geรถffnet.

Schritt 3) Geben Sie die folgende Abfrage in das Editorfenster ein.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Schritt 4) Klicken Sie auf das Symbol โ€žAusfรผhrenโ€œ, um die Abfrage auszufรผhren.

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

Es sollte Folgendes zurรผckgeben:

Teilzeichenfolgen mit regulรคrem SQL-Ausdruck abgleichen

Laden Sie die in diesem Tutorial verwendete Datenbank herunter

Hรคufig gestellte Fragen

SUBSTR ist ein kรผrzerer Alias โ€‹โ€‹fรผr SUBSTRING und gibt einen Teil einer Zeichenkette zurรผck. SUBSTRING unterstรผtzt zusรคtzlich die SQL-Standardschlรผsselwรถrter FROM und FOR sowie regulรคre POSIX-Ausdrรผcke, wรคhrend SUBSTR nur durch Kommas getrennte Positions- und Lรคngenargumente akzeptiert.

PostgreSQL SUBSTRING ist einsbasiert, daher befindet sich das erste Zeichen an Position 1, nicht an Position 0. Die Angabe der Startposition 1 gibt die Zeichenkette ab dem ersten Zeichen zurรผck.

Wenn das POSIX-Muster keine รœbereinstimmung findet, gibt SUBSTRING NULL anstelle einer leeren Zeichenkette zurรผck. Durch die Prรผfung des Ergebnisses mit IS NULL kรถnnen Sie Zeilen verarbeiten, in denen das erwartete Muster fehlt.

Verwenden Sie einen regulรคren Ausdruck, der den Inhalt nach dem @-Zeichen erfasst. Beispielsweise gibt `SUBSTRING(email FROM '@(.*)')` alles nach dem @-Zeichen zurรผck und liefert Ihnen so den Domรคnenteil jeder E-Mail-Adresse.

Verwenden Sie SUBSTRING, wenn Sie den ersten รผbereinstimmenden Text als einfachen Wert benรถtigen. Wรคhlen Sie regexp_matches(), wenn Sie alle รœbereinstimmungen oder mehrere Erfassungsgruppen als Array zurรผckgeben mรถchten, da SUBSTRING nur die erste รœbereinstimmung zurรผckgibt.

KI-Assistenten wie GitHub Copilot wandeln eine einfachenglische Beschreibung in ein POSIX-Muster um, erklรคren die Bedeutung jedes einzelnen Tokens und schlagen Testzeichenketten vor, wodurch das Ausprobieren beim Erstellen von Teilzeichenketten-Beispielen reduziert wird.tractionsanfragen.

Ja. Beschreiben Sie den gewรผnschten Textabschnitt, und der KI-Assistent erstellt einen SUBSTRING-Aufruf mit den korrekten Positionen oder dem regulรคren Ausdruck, den Sie in pgAdmin ausfรผhren und verfeinern kรถnnen.

Ja, die POSIX-SUBSTRING-Funktion unterscheidet standardmรครŸig zwischen GroรŸ- und Kleinschreibung. Um unabhรคngig von der GroรŸ-/Kleinschreibung zu vergleichen, mรผssen beide Eingaben in Kleinbuchstaben umgewandelt werden, z. B. mit SUBSTRING(lower(name) FROM lower(pattern)), sodass GroรŸ- und Kleinbuchstaben gleich behandelt werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: