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: