Prozessor "Text extrahieren"¶
Dieser Prozessor kann verwendet werden, um einen Teil eines Textes, einer Zahl oder einer Kombination von beiden in eine neue Spalte zu extrahieren. Er funktioniert ähnlich wie der Prozessor "Ersetzen mittels RegExp", doch anstatt den Inhalt in der gleichen Spalte zu ersetzen, wird eine neue Spalte mit dem extrahierten Text erstellt. Dahinter steckt die Idee, den zu extrahierenden Teil in Klammern zu setzen. Dieser Teil wird dann in eine neue Spalte extrahiert.
Den Prozessor einrichten¶
Befolgen Sie die Anweisungen der unteren Tabelle, um die Parameter des Prozessors "Text extrahieren" einzurichten.
Beschriftung |
Beschreibung |
Obligatorisch |
---|---|---|
Feld |
Feld, das den/die zu extrahierende(n) Wert(e) enthält |
ja |
Regulärer Ausdruck |
Regulärer Ausdruck, um zu bestimmen, welcher Teil der Werte extrahiert wird. Weitere Informationen darüber, wie man reguläre Ausdrücke schreibt, finden Sie hier: https://en.wikipedia.org/wiki/Regular_expression. Reguläre Ausdrücke können mit einem Online-Debugger-Tool wie Regex101 getestet werden. |
ja |
Beispiel¶
Verwenden wir das gleiche Beispiel wie beim RegExp-Prozessor (aus der französischen Postleitzahl 44100 soll nur die Ordnungszahl des Départements 44 beibehalten werden): Der Prozessor zum Extrahieren des Textes kann verwendet werden, um eine weitere Spalte mit der ausgewählten Ordnungszahl zu erstellen, anstatt den Inhalt zu ersetzen, wie es der RegExp-Prozessor tut.
Aus technischer Sicht kann dieser Prozessor verwendet werden, um ein beliebiges Muster zu extrahieren, das als regulärer Ausdruck aus einer Zeichenkette unter Verwendung von Sub-Matching ausgedrückt wird.
Die Syntax des anzugebenen Sub-Matching-Ausdrucks lautet: "(?P<NAME>REGEXP)". Wobei:
"NAME" steht für den Namen des neuen Feldes, das das extrahierte Ergebnis enthalten wird. Dieser Feldname darf nur Buchstaben, Zahlen und Unterstriche enthalten (Sonderzeichen wie akzentuierte Buchstaben oder Kommas sind nicht erlaubt).
"REXGEXP" ist der Submatch-Ausdruck
Nehmen wir zum Beispiel an, dass Sie einen Straßennamen aus einer Adresse extrahieren möchten. Das heißt, aus der Adresse
600 Pennsylvania Ave NW, Washington, DC 20500, États-Unis
möchten Sie den Wert "Pennsylvania Ave NW" in ein Feld "street_name" extrahieren.
Sie müssten den folgenden Ausdruck schreiben:
[0-9]+ (?P<street_name>.*), .*, .*, .*
Und wenn Sie die Straßennummer in ein Feld "street_number" extrahieren möchten, können Sie den vorherigen Ausdruck einfach verlängern:
(?P<street_number>[0-9]+) (?P<street_name>.*), .*, .*, .*