REGEXP

Le funzioni REGEXP_ sono note come Regular Expression Functions e possono essere viste come una estensione delle funzioni di stringa Substr, Instr, Replace  e Like.

REGEXP_INSTR (stringa_input, regular_espression, start_position, occorrenze del regular_espression, opt1, match_parameter_value)

Restituisce un numero che rappresenta la posizione nella string di input, a partire dalla posizione di inizio,  dove c'è la n-esima occorrenza dell' "item" da cercare.
start_position di default vale 1
occorrenze del regular_espression di default vale 1
opt1 può valere solo 0 oppure 1 e di default vale 0. Se 1 restituisce la posizione immediatamente successiva alla prima posizione individuata.
match_parameter_value è opzionale e può valere ad esempio:
'c'     case-sensitive matching
'i'     case_insensitive matching
'x'    ignora gli spazi bianchi

E s e m p i o
select STREET_ADDRESS,
regexp_instr(STREET_ADDRESS, '[^[:alpha:]]'),
regexp_instr(STREET_ADDRESS, '[^[:alpha:]]',6,1,0) ,regexp_instr(STREET_ADDRESS, '[^[:alpha:]]',1,1,1)
from locations;

Schwanthalerstr. 7031  -- 16- 16 -- 17
1297 Via Cola di Rie  --1 -- 9 -- 2


REGEXP_SUBSTR (stringa_input, regular_espression, start_position, occorrenze del regular_espression, match_parameter_value) 
restituisce un carattere che individua la regular_espression nella stringa di input.

E s e m p i
select regexp_substr('123 OraLinu.blogspot.com','[a-z]',1,1,'c')
 from dual;
Restituisce r perchè è il primo carattere in minuscolo presente nella stringa da cercare. Se si sostituisce il match parmater con 'i' il risultato è il carattere O.
Per ottenere uno o più consecutivi caratteri presenti nella stringa di input inserite aggiungere il meta character +.
select regexp_substr('123 OraLinu.blogspot.com','[A-Za-z]+')
 from dual;
Restituisce OraLinu.

Stesso risultato con la seguente espressione regolare:
select regexp_substr('123 OraLinu.blogspot.com','[[:alpha:]]+')
from dual

REGEXP_LIKE (stringa_input, regular_espression, match_parameter_value) 
verifica se la regular_espression è presente nella stringa di input e restituisce un valore boolenano.

REGEXP_REPLACE(stringa_input, regular_espression, replace_string, start_position, occorrenze del regular_espression, match_parameter_value)
sostituisce nella stringa di input, il valore individuato dalla regular_espresion con il valore replace_string.
E s e m p i o
select regexp_replace('123 OraLinu.blogspot.com','[[:digit:]]','x')
from dual;
Restituisce xxx OraLinu.blogspot.com

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database