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> ] )
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¶
A função ancora implicitamente um padrão em ambas as extremidades (por exemplo,
''
automaticamente se torna'^$'
, e'ABC'
automaticamente se torna'^ABC$'
). Para combinar qualquer cadeia de caracteres começando com ABC, o padrão seria'ABC.*'
.O caractere de barra invertida (
\
) é o caractere de escape. Para obter mais informações, consulte Especificação de expressões regulares em constantes de cadeias de caracteres entre aspas simples.Para obter mais notas de uso, consulte o Notas de uso geral para funções de expressão regular.
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);
Execute uma consulta que diferencia maiúsculas de minúsculas com um curinga:
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');
+------+
| 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');
+---------------+
| 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.