Categorias:

Funções de cadeia de caracteres (expressões regulares)

REGEXP_LIKE

Executa uma comparação para determinar se uma cadeia de caracteres corresponde a um padrão especificado. Ambas as entradas devem ser expressões de texto.

REGEXP_LIKE é semelhante à função [ NOT ] LIKE, mas com expressões regulares POSIX estendidas em vez da sintaxe padrão SQL LIKE. Oferece suporte às condições de correspondência mais complexas do que LIKE.

Dica

Você pode usar o serviço de otimização de pesquisa para melhorar o desempenho de consultas que chamam essa função. Para obter mais detalhes, consulte Serviço de otimização de pesquisa.

Aliases:

[ NOT ] RLIKE (1ª sintaxe)

Consulte também: Funções de cadeia de caracteres (expressões regulares)

Sintaxe

REGEXP_LIKE( <subject> , <pattern> [ , <parameters> ] )
Copy

Argumentos

Obrigatório:

subject

A cadeia de caracteres a ser procurada por correspondências.

pattern

Padrão a atender.

Para diretrizes sobre como especificar padrões, consulte Funções de cadeia de caracteres (expressões regulares).

Opcional:

parameters

Cadeia de caracteres de um ou mais caracteres que especifica os parâmetros usados para a busca de correspondências. Valores com suporte:

Parâmetro

Descrição

c

Correspondência com distinção entre maiúsculas e minúsculas

i

Correspondência sem distinção entre maiúsculas e minúsculas

m

Modo multilinha

e

Extração de subcorrespondências

s

POSIX wildcard character . matches \n

Padrão: c

Para obter mais detalhes, consulte Especificação dos parâmetros para a expressão regular.

Retornos

Retorna um BOOLEAN ou NULL. O valor será TRUE se houver uma correspondência. Caso contrário, retorna FALSE. Retorna NULL se algum argumento for NULL.

Notas de uso

Detalhes do agrupamento

Arguments with collation specifications are currently not supported.

Exemplos

Criar uma tabela com nomes de cidades:

CREATE OR REPLACE TABLE cities(city varchar(20));
INSERT INTO cities VALUES
  ('Sacramento'),
  ('San Francisco'),
  ('San Jose'),
  (null);
Copy

Execute uma consulta que diferencia maiúsculas de minúsculas com um curinga:

SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');
Copy
+------+
| CITY |
|------|
+------+

Execute uma consulta que não diferencia maiúsculas de minúsculas com um curinga:

SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*', 'i');
Copy
+---------------+
| CITY          |
|---------------|
| San Francisco |
| San Jose      |
+---------------+

Para exemplos adicionais de expressões regulares, consulte [ NOT ] REGEXP.

Para procurar um caractere curinga, você precisa usar um caractere de espace para o curinga. Para obter mais informações sobre caracteres curinga, consulte Especificação de expressões regulares em constantes de cadeias de caracteres entre aspas simples.