14 Suchen und Ersetzen
Um Daten in einem Attributfeld gezielt zu ersetzen, können Sie im Feldrechner von QGIS die Funktion regexp_replace()
verwenden. Diese Funktion ermöglicht es, Textmuster innerhalb eines Feldes zu suchen und durch einen neuen Text zu ersetzen. Dabei können sowohl einfache Begriffe als auch reguläre Ausdrücke verwendet werden, um komplexe Ersetzungen durchzuführen.
Syntax:
regexp_replace("Feldname", 'Suchmuster', 'Ersatztext')
"Feldname"
: Das Attributfeld, in dem die Ersetzung durchgeführt werden soll.'Suchmuster'
: Der Begriff oder das Textmuster, das Sie ersetzen möchten. Dies kann ein einfacher Text oder ein regulärer Ausdruck sein.'Ersatztext'
: Der Text, der den gefundenen Begriff oder das Muster ersetzen soll.
Beispiel:
Wenn Sie in einem Attributfeld namens „Feldname“ den Begriff Begriff1
durch Begriff2
ersetzen möchten, lautet der Ausdruck:
regexp_replace("Feldname", 'Begriff1', 'Begriff2')
In diesem Beispiel sucht die Funktion nach Vorkommen von Begriff1
in jedem Datensatz des Feldes „Feldname“ und ersetzt diese durch Begriff2
.
Anwendungsbeispiel:
Angenommen, das Attributfeld „Feldname“ enthält eine Liste von Baumarten, und Sie möchten alle Vorkommen des Begriffs „Eiche“ durch „Buche“ ersetzen. Der Ausdruck im Feldrechner würde dann so aussehen:
regexp_replace("Feldname", 'Eiche', 'Buche')
Nach der Ausführung werden alle Einträge, die den Begriff „Eiche“ enthalten, automatisch durch „Buche“ ersetzt.
Vorteile von regexp_replace()
:
- Flexibilität: Neben einfachen Begriffen können auch komplexe Textmuster mit Hilfe von regulären Ausdrücken definiert werden, um spezifische oder wiederkehrende Muster zu erfassen.
- Präzision: Durch den Einsatz von regulären Ausdrücken können Sie sicherstellen, dass nur die gewünschten Vorkommen ersetzt werden.
- Automatisierung: Die Funktion kann für alle Datensätze in einem Attributfeld gleichzeitig angewendet werden, was manuelle Anpassungen unnötig macht.
Hinweis:
Falls Sie nur einfache Begriffe ersetzen möchten, ohne reguläre Ausdrücke zu verwenden, können Sie auch die Funktion replace()
verwenden, die für solche Fälle unkomplizierter ist. Der Ausdruck würde dann folgendermaßen aussehen:
replace("Feldname", 'Begriff1', 'Begriff2')
Die Funktion regexp_replace()
bietet jedoch mehr Möglichkeiten, da sie Muster und komplexe Textstrukturen erkennt und ändert.