14 Etsi ja korvaa
Voit korvata attribuuttikentän tietoja käyttämällä QGIS-kenttälaskurin regexp_replace()-funktiota. Tämän funktion avulla voit etsiä tekstikuvioita kentästä ja korvata ne uudella tekstillä. Sekä yksinkertaisia termejä että säännöllisiä lausekkeita voidaan käyttää monimutkaisten korvausten suorittamiseen.
Syntaksi:
regexp_replace("Feldname", 'Suchmuster', 'Ersatztext')
'Kentän nimi': Attribuuttikenttä, jossa korvaaminen suoritetaan.'Hakukuvio': Termi tai tekstikuvio, jonka haluat korvata. Tämä voi olla yksinkertainen teksti tai säännöllinen lauseke.'Korvaava teksti': Teksti, joka korvaa löydetyn termin tai kuvion.
Esimerkki:
Jos haluat korvata termin Term1 termillä Term2 attribuuttikentässä nimeltä ”Kentän nimi”, lauseke on seuraava:
regexp_replace("Feldname", 'Begriff1', 'Begriff2')
Tässä esimerkissä funktio etsii termi1: n esiintymiä jokaisesta ”Kentän nimi” -kentän tietueesta ja korvaa ne termillä2.
Sovellusesimerkki:
Oletetaan, että attribuuttikenttä ”Kentän nimi” sisältää luettelon puulajeista ja haluat korvata kaikki termin ”tammi” esiintymät termillä ”pyökki”. Kenttälaskurissa oleva lauseke näyttäisi tällöin seuraavalta:
regexp_replace("Feldname", 'Eiche', 'Buche')
Suorittamisen jälkeen kaikki termiä ”tammi” sisältävät merkinnät korvataan automaattisesti termillä ”pyökki”.
Regexp_replace():n edut:
- Joustavuus: Yksinkertaisten termien lisäksi voidaan määritellä monimutkaisia tekstikuvioita käyttämällä säännöllisiä lausekkeita, joilla voidaan kuvata tiettyjä tai toistuvia kuvioita.
- Tarkkuus: käyttämällä säännöllisiä lausekkeita voit varmistaa, että vain halutut esiintymät korvataan.
- Automaatio: Toimintoa voidaan käyttää kaikkiin attribuuttikentän tietueisiin samanaikaisesti, jolloin manuaaliset mukautukset ovat tarpeettomia.
Huom:
Jos haluat korvata vain yksinkertaisia termejä käyttämättä säännöllisiä lausekkeita, voit käyttää myös replace()- funktiota, joka on suoraviivaisempi tällaisissa tapauksissa. Lauseke näyttäisi tällöin seuraavalta:
replace("Feldname", 'Begriff1', 'Begriff2')
Regexp_replace()- funktio tarjoaa kuitenkin enemmän vaihtoehtoja, sillä se tunnistaa ja muuttaa kuvioita ja monimutkaisia tekstirakenteita.
