< All
...
Export

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:

  1. 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.
  2. Tarkkuus: käyttämällä säännöllisiä lausekkeita voit varmistaa, että vain halutut esiintymät korvataan.
  3. 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.