Deutsch

Text- und Alltagswerkzeuge · Text-Toolkit

Regex-Erfassungsgruppen in Suchen und Ersetzen: Datumsangaben mit $1, $2, $3 neu anordnen

· Wie es funktioniert

regulärer Ausdruck Suchen und Ersetzen Termine

Drei erfasste Datumsfelder in der Reihenfolge Jahr-Monat-Tag in Tag-Monat-Jahr
Original-ToolAcre-Vektorillustration

Zeigt, wie Klammern Teile einer Übereinstimmung erfassen und wie $1, $2 und $3 sie beim Ersetzen wiederverwenden, indem sie die klassische ISO-Umschreibung von Tag-Monat-Jahr-Datum und einige andere Neuordnungen verwenden.

Vierhundert Daten in der falschen Reihenfolge – warum die manuelle Bearbeitung von 2024-01-02 in 02/01/2024 eine Aufgabe für Erfassungsgruppen ist

Ein Tabellenkalkulationsexport kann vierhundert Datumsangaben in der Reihenfolge Jahr-Monat-Tag im ISO-Stil hinterlassen, wenn ein britisches Arbeitsblatt den Tag erwartet/month/year. Das manuelle Bearbeiten von `2024-01-02` in `02/01/2024` ist langsam, aber das größere Risiko besteht in der Inkonsistenz: Eine übersprungene Zeile oder eine vertauschte Ziffer kann überleben, bis ein Bericht verteilt wird.

Durch Suchen und Ersetzen kann jedes Datum als dieselbe Anordnung von Teilen und nicht als vierhundert unabhängige Zeichenfolgen behandelt werden. Ein regulärer Ausdruck identifiziert Jahr, Monat und Tag, während die Ersetzung diese erfassten Teile in einer anderen Reihenfolge zurückschreibt. Die ursprünglichen Ziffern werden wiederverwendet, sodass die Operation die Struktur ändert, anstatt Werte neu einzugeben.

Was Klammern erfassen – wie jede Gruppe eine Zahl von links nach rechts erhält und was \d{4} und \d{2} übereinstimmen

Klammern erstellen Erfassungsgruppen. In `(\d{4})-(\d{2})-(\d{2})` erfasst die erste Gruppe vier Ziffern, die zweite zwei und die dritte zwei. `\d` bezeichnet eine Ziffer in diesem JavaScript-Muster, während `{4}` und `{2}` die genaue Anzahl der erforderlichen Wiederholungen innerhalb jeder Gruppe angeben.

Gruppen erhalten Zahlen aus jeder öffnenden Klammer, während die Engine von links nach rechts liest. Für `2024-01-02` ist die Gruppe 1 `2024`, die Gruppe 2 ist `01` und die Gruppe 3 ist `02`; Die Bindestriche stimmen mit den Trennzeichen überein, stehen aber außerhalb der Klammern, sodass sie nicht als erfasste Werte beibehalten werden.

Verwendung von $1, $2 und $3 im Ersatz – Neuaufbau der Übereinstimmung in einer neuen Reihenfolge mit neuen Trennzeichen

Der Ersatz `$3/$2/$1` fordert JavaScript auf, das dritte Capture, einen Schrägstrich, das zweite Capture, einen weiteren Schrägstrich und das erste Capture einzufügen. Auf das Beispiel angewendet ergeben diese Referenzen `02/01/2024`. Dollar-Referenzen sind Ersatzanweisungen, kein Text, der auch im abgeglichenen Datum erscheinen muss.

ToolAcre übergibt die Ersetzungszeichenfolge an die standardmäßige JavaScript-Ersetzungsoperation für Zeichenfolgen. Seine Quelle unterstützt explizit nummerierte Referenzen wie `$1`, `$2` und `$3`, und das Suchmuster wird global kompiliert. Dieses globale Flag ist der Grund, warum jedes übereinstimmende Datum in einem Vorgang neu geschrieben wird und nicht nur das erste übereinstimmende Datum.

Funktioniertes Beispiel – (\d{4})-(\d{2})-(\d{2}) ersetzt durch $3/$2/$1, und dann die Ersetzungsanzahl mit der Zeilenanzahl vergleichen

Fügen Sie die exportierte Spalte ein, aktivieren Sie Regex, geben Sie `(\d{4})-(\d{2})-(\d{2})` in „Suchen“ und `$3/$2/$1` in „Ersetzen“ ein. Wenn Sie „Alle ersetzen“ auswählen, werden zunächst die Übereinstimmungen gezählt und dann neu geschrieben, sodass das Ergebnis angibt, wie viele datumsförmige Zeichenfolgen im gesamten eingefügten Text geändert wurden.

Vergleichen Sie diese Zahl mit der erwarteten Zeilenanzahl, bevor Sie das Ergebnis zurück in die Tabelle kopieren. Eine niedrigere Anzahl deutet auf Leerzeichen oder Datumsangaben in einem anderen Format hin; Eine höhere Anzahl bedeutet, dass ähnlicher Text an anderer Stelle ebenfalls gefunden wurde. Das Tool verfügt nicht über eine „Eins ersetzen“-Vorschau. Verwenden Sie daher die Aktion „Rückgängig“, wenn die Zählung oder Ausgabe ein zu breites Muster erkennen lässt.

Weitere Neuordnungen – „Nachname, Vorname“ zu „Vorname Nachname“ und Vertauschen der Spalten einer zweispaltigen Liste

Das gleiche Prinzip kann `Surname, Forename` in `Forename Surname` ändern, wenn jede Zeile zuverlässig ein Komma enthält: Suchen Sie `([^,]+), ([^\r\n]+)` und ersetzen Sie es durch `$2 $1`. Hier erfasst jede Gruppe Text auf einer Seite des bekannten Trennzeichens, anstatt eine feste Anzahl von Ziffern anzunehmen.

Ein zweispaltiger Austausch ist trotz der groben Formulierung keine integrierte Tabellenoperation. Dies funktioniert nur, wenn der eingefügte Text über ein zuverlässiges Trennzeichen verfügt und das Muster Zeilengrenzen sicher beschreibt. Kommas in Namen, fehlende Felder oder inkonsistente Tabulatoren erfordern eine Bereinigung oder ein präziseres Muster, bevor eine Massenersetzung vertrauenswürdig ist.

Weitere Neuordnungen funktionieren nur, wenn die Eingabe über ein zuverlässiges Trennzeichen verfügt

Ein Punkt in einem Muster bedeutet fast jedes Zeichen, daher akzeptiert ein als `(\d{4}).(\d{2}).(\d{2})` geschriebenes Datumsmuster auch Schrägstriche, Leerzeichen oder Buchstaben zwischen Feldern. Escapen Sie einen Literalpunkt als `\.` und maskieren Sie andere Metazeichen, wenn diese mit sich selbst übereinstimmen sollten. Eine ungültige Klammer oder eine unvollständige Klammer wird gemeldet, ohne dass der Text geändert wird.

Die Gruppennummerierung beginnt bei 1, nicht bei 0. Dollarzeichen haben auch eine spezielle Ersetzungsbedeutung: `$&` fügt die gesamte Übereinstimmung ein und `$$` erzeugt ein wörtliches Dollarzeichen. Dieses Verhalten gilt auch dann, wenn der Regex-Modus deaktiviert ist, da ToolAcre nur die Suchseite maskiert; Die Ersetzungszeichenfolge wird nicht maskiert, bevor JavaScript sie verarbeitet.

Was dies nicht abdeckt – benannte Gruppen, Lookbehind- und Monatsnamen, die eine Nachschlagetabelle benötigen

Nummerierte Gruppen können bereits in einer Übereinstimmung vorhandenen Text neu anordnen, aber sie können `Jan` nicht in `01` übersetzen, da dies eine Suche statt einer Neuordnung erfordert. Dieser Artikel stützt sich auch nicht auf benannte Gruppen oder Lookbehind, deren Nützlichkeit und Browserunterstützung andere Auswahlmöglichkeiten erfordert als diese einfache Exportbereinigung.

Der Datumsausdruck prüft die Form, nicht die Kalenderwahrheit. Es stimmt mit `2024-99-88` überein, da zwei Ziffern jede kleinere Gruppe erfüllen. Validieren Sie Datumsangaben in der Tabellenkalkulation oder im Quellsystem, wenn es auf Korrektheit ankommt. Suchen und Ersetzen eignet sich für eine konsistente Formatierung und nicht für den Nachweis, dass jeder erfasste Monat und Tag gültig ist.

Die Erkenntnis: ein Muster, eine Ersetzung, jede Zeile auf einmal im Text Toolkit korrigiert, mit Rückgängigmachen, wenn das Ergebnis nicht Ihren Erwartungen entspricht

Capture-Gruppen wandeln eine übereinstimmende Zeichenfolge in wiederverwendbare Teile um. Für eine einheitliche Datumsspalte behalten drei Gruppen das ursprüngliche Jahr, den ursprünglichen Monat und den ursprünglichen Tag bei, während `$3/$2/$1` sie in der britischen Reihenfolge anordnet. Die globale Suche verarbeitet alle Übereinstimmungen und die gemeldete Anzahl liefert eine sofortige Prüfung anhand der Anzahl der Zeilen, die Sie ändern wollten.

Halten Sie den Arbeitsablauf überprüfbar: Behalten Sie eine Kopie des Exports, verwenden Sie das engste Muster, das dazu passt, vergleichen Sie die Zählung, überprüfen Sie mehrere Ergebnisse und machen Sie den Vorgang rückgängig, wenn die Beweise nicht Ihren Erwartungen entsprechen. Eine gut abgegrenzte Ersetzung kann wiederholte Bearbeitungen überflüssig machen, ohne vorzutäuschen, dass jeder ziffernförmige Wert automatisch ein gültiges Datum ist.