Text zwischen zwei Zeichen extrahieren: Der ultimative Guide

Melden

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:
    1. TEXTNACH(A1; "(") liefert alles nach der öffnenden Klammer: ID123)Code.
    2. 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:
    1. FINDEN("("; A1) + 1: Sucht die Position der Klammer und geht einen Schritt weiter.
    2. 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:

  1. Klicke auf deine Spalte.
  2. Gehe zum Tab Spalte hinzufügen -> Extrakt.
  3. Wähle Text zwischen Trennzeichen.
  4. Gib das Startzeichen (z. B. {) und das Endzeichen (z. B. }) ein.
  5. 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!

0