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
Sujeito à correspondência.
pattern
Padrão a atender.
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:
c
,i
,m
,e
,s
Para obter mais detalhes, consulte Especificação dos parâmetros para a expressão regular.
Padrão:
c
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 (isto é,
''
torna-se automaticamente'^$'
, e'ABC'
torna-se automaticamente'^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);
Executar uma consulta que diferencia maiúsculas e minúsculas com um curinga:
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');+------+ | CITY | |------| +------+
Executar uma consulta que não diferencia maiúsculas e 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.