Text zwischen zwei Zeichen extrahieren: Der ultimative Guide
Hier ist ein umfassendes Tutorial, das dir zeigt, wie du Text zwischen zwei bestimmten Zeichen extrahierst – egal ob du Excel, Google Sheets, Python oder reguläre Ausdrücke (Regex) verwendest.
(Klammern, Kommas, Trennstriche & mehr)
Das Extrahieren von Teilstrings ist eine der häufigsten Aufgaben in der Datenverarbeitung. Hier sind die besten Methoden für verschiedene Tools.
1. Microsoft Excel & Google Sheets
Je nachdem, welche Version du nutzt, gibt es eine einfache oder eine klassische Methode.
Methode A: Der moderne Weg (Excel 365 & Google Sheets)
Seit kurzem gibt es die Funktionen TEXTVOR und TEXTNACH, die das Leben extrem erleichtern.
Szenario: Du hast den Text Produkt(ID123)Code und willst ID123 extrahieren.
- Formel:
=TEXTVOR(TEXTNACH(A1; "("); ")") - Erklärung:
TEXTNACH(A1; "(")liefert alles nach der öffnenden Klammer:ID123)Code.TEXTVOR(..., ")")nimmt davon alles, was vor der schließenden Klammer steht:ID123.
Methode B: Der klassische Weg (Alle Versionen)
Wenn du ein älteres Excel nutzt, musst du TEIL (MID) und FINDEN (FIND) kombinieren.
- Formel:
=TEIL(A1; FINDEN("("; A1) + 1; FINDEN(")"; A1) - FINDEN("("; A1) - 1) - Erklärung:
FINDEN("("; A1) + 1: Sucht die Position der Klammer und geht einen Schritt weiter.FINDEN(")"; A1) - FINDEN("("; A1) - 1: Berechnet die exakte Anzahl der Zeichen zwischen den Klammern.
2. Reguläre Ausdrücke (Regex)
Regex ist die mächtigste Methode und funktioniert in fast allen Programmiersprachen sowie in fortgeschrittenen Texteditoren (wie Notepad++ oder VS Code).
Das Muster (Pattern)
Um Text zwischen [ und ] zu finden:
\[(.*?)\]
Erklärung der Bausteine:
\[: Sucht die öffnende Klammer (der Backslash\ist nötig, da[ein Sonderzeichen ist).( ): Eine "Capturing Group" – das ist der Teil, den wir eigentlich haben wollen..*?:.: Jedes beliebige Zeichen.*: Beliebig oft.?: "Lazy" (stoppt beim ersten Vorkommen des Endzeichens, nicht beim letzten).
\]: Sucht die schließende Klammer.
3. Python
In Python kannst du entweder die einfache String-Manipulation nutzen oder das re-Modul für Regex.
Methode A: Einfaches Slicing (Ohne Bibliotheken)
Gut, wenn das Zeichen nur einmal vorkommt.
text = "Name: [Max Mustermann]"
start = text.find("[") + 1
end = text.find("]")
ergebnis = text[start:end]
print(ergebnis) # Ausgabe: Max Mustermann
Methode B: Mit Regex (Für komplexe Fälle)
import re
text = "Beispiel (Extrakt 1) und (Extrakt 2)"
ergebnis = re.findall(r'\((.*?)\)', text)
print(ergebnis) # Ausgabe: ['Extrakt 1', 'Extrakt 2']
4. Power Query (Excel & Power BI)
Wenn du große Datenmengen bereinigst, ist Power Query am besten:
- Klicke auf deine Spalte.
- Gehe zum Tab Spalte hinzufügen -> Extrakt.
- Wähle Text zwischen Trennzeichen.
- Gib das Startzeichen (z. B.
{) und das Endzeichen (z. B.}) ein. - Fertig! Power Query erstellt automatisch die Logik für dich.
Zusammenfassung: Welches Tool wann?
| Problem | Empfohlene Lösung |
|---|---|
| Schnelle Lösung in Excel | TEXTVOR / TEXTNACH |
| Alte Excel-Tabelle | TEIL & FINDEN |
| Programmierung/Skripte | Python mit re.findall() |
| Suchen & Ersetzen in Dateien | Regex \[(.*?)\] |
| Große Datenmengen (ETL) | Power Query "Extrakt" |
Pro-Tipp: Wenn du nach Sonderzeichen suchst, die in Regex eine Funktion haben (wie . * + ? ( ) [ ] { }), setze immer einen Backslash \ davor!