tecnologia | consultoria | banco de dados

Oracle - Expressões regulares

-- Manter apenas números na coluna

SELECT
REGEXP_REPLACE('REGISTRO 123.456.789-10', '[^0-9]+', '')
FROM dual;
-- Resultado: 12345678910
SELECT
REGEXP_REPLACE('ABC12345DEF', '[^[:digit:]]+', '')
FROM dual;
-- Resultado: 12345
SELECT
REGEXP_REPLACE('1A2B3C4D', '\D+', '')
FROM dual;
-- Resultado: 1234

-- Selecionar linhas numéricas

SELECT
e.col1
FROM tb_leandro e
WHERE REGEXP_LIKE(e.col1 , '^[[:digit:]]+$');

-- Selecionar linhas com letras e espaços

SELECT
e.col1
FROM tb_leandro e
WHERE REGEXP_LIKE(e.col1 , '^[[:alpha:][:space:]]+);

-- Contar espaço no início da string antes de algum carácter

SELECT
NVL(LENGTH(REGEXP_SUBSTR(' Four Spaces', '^[[:space:]]+',1,1)),0) AS Result
FROM dual;
-- Resultado: 4
SELECT
REGEXP_INSTR(' Four Spaces', '\S',1,1) AS Result
FROM dual;
-- Resultado: 4
SELECT
NVL(LENGTH(REGEXP_SUBSTR(' Two Spaces', '^[[:space:]]+',1,1)),0) AS Result
FROM dual;
--Resultado: 2

-- Extrair string que possui | como delimitador

SELECT
REGEXP_SUBSTR('One|Two|Three|Four|Five', '[^|]+',1,1) AS Result
FROM dual;
-- Resultado: One
SELECT
REGEXP_SUBSTR('One|Two|Three|Four|Five', '[^|]+',1,4) AS Result
FROM dual;
-- Resultado: Four

-- Extrair primeiro e último valor da string

SELECT
REGEXP_REPLACE('Leandro Sacramento de Paula', ' .+ ', ' ')
From dual;
-- Resultado: Leandro Paula


CARÁCTER FUNÇÃO
\ Carácter de escape
^ Posição inicial da linha (string)
$ Posição final da linha (string)
[ ] Corresponde ao caracteres listados entre os colchetes
[^ ] Não corresponde aos caracteres listados entre os colchetes
( ) Sub-expressão ou grupo. Pode ser uma string ou uma expressão complexa
. Qualquer caractere ("coringa")
+ Uma ou mais ocorrências da sub-expressão precedente
? Zero ou uma ocorrência da sub-expressão precedente
* Zero ou mais ocorrências da sub-expressão precedente
{n} Número de caracteres exatas da sub-expressão precedente
{m,} Número de ocorrências de pelo menos m vezes da sub-expressão precedente
{m,n} Número de ocorrências de pelo menos m vezes, mas não mais que n vezes da sub-expressão precedente
| Alternativa de padrão de busca, por exemplo ('leandro'|'sacramento')
Data publicação: 01:27 13/11/2015
Perfil
Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação e Business Intelligence.

Linkedin  Youtube

"Eu não sei como vencer os outros; sei apenas como vencer a mim mesmo." (Yagu Munenori)


Leandro Sacramento, Todos os direitos reservados - 2012 - 2020