14 Wyszukaj i zamień
Aby zastąpić dane w polu atrybutu, można użyć funkcji regexp_replace()
w kalkulatorze pól QGIS. Funkcja ta umożliwia wyszukiwanie wzorców tekstowych w polu i zastępowanie ich nowym tekstem. Zarówno proste wyrażenia, jak i wyrażenia regularne mogą być używane do wykonywania złożonych zamian.
Składnia:
regexp_replace("Feldname", 'Suchmuster', 'Ersatztext')
"Field name"
: Pole atrybutu, w którym ma zostać dokonana zamiana."Wzorzec wyszukiwania"
: termin lub wzorzec tekstowy, który ma zostać zastąpiony. Może to być zwykły tekst lub wyrażenie regularne."Tekst zastępujący"
: tekst, który ma zastąpić znaleziony termin lub wzorzec.
Przykład:
Jeśli chcą Państwo zastąpić termin Term1
terminem Term2
w polu atrybutu o nazwie „Nazwa pola”, wyrażenie wygląda następująco:
regexp_replace("Feldname", 'Begriff1', 'Begriff2')
W tym przykładzie funkcja wyszukuje wystąpienia term1
w każdym rekordzie danych pola „Field name” i zastępuje je term2
.
Przykład zastosowania:
Załóżmy, że pole atrybutu „Nazwa pola” zawiera listę gatunków drzew i chcą Państwo zastąpić wszystkie wystąpienia terminu „dąb” terminem „buk”. Wyrażenie w kalkulatorze pola wyglądałoby wówczas następująco:
regexp_replace("Feldname", 'Eiche', 'Buche')
Po wykonaniu, wszystkie wpisy zawierające termin „dąb” są automatycznie zastępowane przez „buk”.
Zalety funkcji regexp_replace()
:
- Elastyczność: Oprócz prostych terminów, złożone wzorce tekstowe można również definiować za pomocą wyrażeń regularnych w celu przechwytywania określonych lub powtarzających się wzorców.
- Precyzja: Używając wyrażeń regularnych, można zapewnić, że tylko pożądane wystąpienia zostaną zastąpione.
- Automatyzacja: Funkcja może być używana dla wszystkich rekordów danych w polu atrybutu w tym samym czasie, dzięki czemu ręczne korekty nie są konieczne.
Proszę zauważyć:
Jeśli chcą Państwo zastąpić tylko proste wyrażenia bez użycia wyrażeń regularnych, można również użyć funkcji replace(
), która jest prostsza w takich przypadkach. Wyrażenie wyglądałoby wtedy następująco:
replace("Feldname", 'Begriff1', 'Begriff2')
Jednak funkcja regexp_replace()
oferuje więcej opcji, ponieważ rozpoznaje i zmienia wzorce i złożone struktury tekstowe.