Andmebaasisüsteemid PostgreSQL ja Oracle pakuvad funktsiooni regexp_replace, mis võimaldab asendada stringis alamstringi, kasutades sealjuures regulaaravaldisi. Lause katsetamiseks saab kasutada SQL Fiddle keskkonda.
PostgreSQL (17) ja Oracle 23ai.
Funktsioonil regexp_replace on kolm argumenti.
PostgreSQL (17) ja Oracle 23ai.
WITH sonad (sona) AS (VALUES ('(poolikud sulud'), ('sulgudeta'), ('veel( poolikuid sulge'), ('poolikud sulud)'),('(sulud)'),('()'))
SELECT sona AS algne, regexp_replace(sona,'^\((.*)\)$','\1') AS teisendatud
FROM sonad;
Funktsioonil regexp_replace on kolm argumenti.
- Väärtus, kus teha asendus.
- Regulaaravaldis, mille alusel otsida asendatavat alamstringi.
- '^\((.*)\)$' - stringi alguses ja lõpus peavad olema sulud. Selleks, et otsida regulaaravaldises sulge, tuleb nende ette panna paomärk \, sest sulgudel on regulaaravaldise mustris eritähendusega märgid. Sulgude vahel on null või rohkem suvalist märki (.*).
- Alamstringi asendav väärtus.
- Kogu string asendatakse eelnevas mustris esimestes sulgudes olnud väärtusega (.*) e väärtusega, mis on sulgude sees.
Hinda postitust:
Keskmine hinne : Pole veel hinnanguid!