Neste tutorial, discutiremos o uso da função regexp_like () nos bancos de dados Oracle. Esta função nos permite executar um padrão de expressão regular correspondente em um determinado conjunto de valores.
Função oracle regexp_like
A função regexp_like é semelhante ao operador condicional semelhante. No entanto, diferentemente do operador semelhante, essa função executa uma correspondência de padrão regex em vez de uma única correspondência de padrão.
Isso o torna mais avançado e confiável em comparação com o operador semelhante. Isso ocorre porque a expressão regular nos permite especificar um padrão mais preciso e personalizável. Isso pode ajudar rapidamente a restringir os resultados da pesquisa em um determinado conjunto.
A sintaxe da função está como descrito abaixo:
Regexp_like (fonte_string, search_pattern, [match_parameter]);A função aceita os argumentos como mostrado abaixo:
A seguir estão a sintaxe e combinações de expressão regular aceita:
Operador | Descrição |
^ | Corresponde ao início de uma string, conforme definido no Match_parameter. |
$ | Indica o fim de uma string conforme definido no Match_parameter. |
* | Combinar zero ou mais ocorrências |
+ | Combinar uma ou mais ocorrências |
? | Combinar zero ou uma ocorrência |
^b | Combina com o personagem de início da linha |
$ b | Corresponde ao personagem de final de linha. |
. c | Combine qualquer personagem no conjunto de personagens suportado, exceto nulo |
[] d | Especifica uma lista de itens e deseja corresponder a pelo menos um item na lista |
() | Permite que o padrão seja tratado como uma única subexpressão. |
m | Corresponde exatamente às vezes. |
m, | Corresponde a pelo menos m vezes. |
m, n | Corresponde a pelo menos m vezes, mas não mais que n vezes. |
\ ne | A expressão de referência de back -referência (onde n é um número inteiro entre 1 e 9) corresponde à enésima subexpressão. |
[…] F | Especifica o elemento de agrupamento |
[::] g | Especifica as classes de caracteres |
[==] H | Especifica classes equivalentes. |
Para descobrir mais sobre a sintaxe de expressão regular multilíngue e o uso nos bancos de dados Oracle, considere o link fornecido abaixo:
https: // docs.oráculo.com/cd/b12037_01/servidor.101/b10759/ap_posix001.HTM#I690819
A seguir mostra os valores aceitos para o match_parameter.
Se o match_parameter não for fornecido, o Oracle assumirá:
Depois que a função executar a operação desejada, ela deve devolver a linha correspondendo ao padrão especificado.
Exemplo de uso
A seção a seguir fornece exemplos demonstrando o uso da função regexp_like.
Suponha que tenhamos uma tabela contendo informações de funcionários, como mostrado:
Exemplo 1 - Uso básico
O exemplo a seguir mostra como usar a função para procurar um nome correspondente na tabela dos funcionários.
SelecioneNesse caso, a consulta acima deve retornar todos os nomes correspondentes em que o primeiro nome inclui 'P.'
Um exemplo de saída é como mostrado:
Exemplo 2 - Combine o início da linha
No exemplo abaixo, demonstramos como usar o Match_parameter para pesquisar no início da linha denotada pelo caráter caret.
SelecioneA tabela resultante:
Exemplo 3 - Combine o final da linha
Da mesma forma, podemos corresponder ao padrão no final da linha usando o 'i' como o valor do match_parameter e o sinal do dólar para denotar o fim da linha.
SelecioneNesse caso, a consulta acima deve retornar os valores correspondentes, como mostrado:
Observe que todos os valores da coluna Last_Name terminam com um 'r'.'
Exemplo 4 - Execute uma pesquisa sensível ao caso
No exemplo abaixo, definimos o valor do match_parameter como 'c' para ativar a correspondência sensível ao caso.
SelecioneNo exemplo acima, como estamos usando a sensibilidade ao caso com um padrão de pesquisa em minúsculas, a consulta não corresponde a nenhum valor, pois todos os valores da tabela são camelos.
Exemplo 5 - Execute uma pesquisa insensível ao caso
Para circunavegar o cenário acima, podemos executar uma correspondência insensível ao caso, definindo o valor do match_parameter como 'i'.
Exemplo:
SelecioneSaída:
Nesse caso, podemos ver a consulta corresponde a dois valores.
Exemplo 6 - Combine o personagem anterior várias vezes.
Também permitimos que a consulta corresponda a um personagem específico anterior um número definido de vezes. Um exemplo é como mostrado:
Selecione First_Name, Last_NameNa consulta de exemplo acima, pesquisamos todas as linhas correspondentes, onde o valor contém dois caracteres 'E' na coluna Last_Name.
Os valores resultantes são como mostrados:
Como você pode ver, todos os valores na coluna Last_Name contém dois caracteres 'e'.
Conclusão
Neste post, discutimos como usar a função regexp_like nos bancos de dados Oracle para procurar um padrão de expressão regular.