Todos os produtos
Search
Central de documentação

MaxCompute:Expressões regulares

Última atualização: Jun 30, 2026

Este tópico descreve os metacaracteres, as classes de caracteres e os caracteres de escape compatíveis com expressões regulares no MaxCompute SQL. Para obter informações sobre o uso e exemplos do operador RLIKE, consulte RLIKE.

Metacaracteres

Metacaractere

Descrição

^

Corresponde ao início de uma string.

$

Corresponde ao fim de uma string.

.

Corresponde a qualquer caractere único.

*

Corresponde ao caractere ou padrão anterior zero ou mais vezes.

+

Corresponde ao caractere ou padrão anterior uma ou mais vezes.

?

  • Corresponde ao caractere ou padrão anterior zero ou uma vez.

  • Quando colocado após um quantificador (*, +, ?, {n}, {n,} ou {n,m}), alterna esse quantificador para o modo não guloso. O modo não guloso corresponde ao menor número possível de caracteres; já o modo guloso padrão corresponde à maior quantidade possível.

A|B

Corresponde a A ou B.

(abc)*

Corresponde à sequência abc zero ou mais vezes.

{n} ou {m,n}

{n} corresponde exatamente n vezes. {m,n} corresponde entre m e n vezes.

[ab]

Corresponde a qualquer caractere listado entre colchetes.

[a-d]

Corresponde a qualquer caractere no intervalo de a até d (a, b, c ou d).

[^ab]

^ significa NÃO. Corresponde a qualquer caractere que não seja a ou b.

[::]

Sintaxe de grupo de caracteres POSIX. Consulte .

\

Caractere de escape.

\n

Retrorreferência, em que n é um dígito de 1 a 9.

\d

Corresponde a qualquer dígito (0–9).

\D

Corresponde a qualquer caractere não numérico.

Exemplos

Para mais exemplos de uso, consulte RLIKE.

Correspondência geral de padrões

  • Correspondência com o início e o fim de uma string

    -- Check whether the string aa123bb starts with a. Returns true.
    SELECT 'aa123bb' RLIKE '^a';
  • Correspondência com qualquer caractere

    -- Check whether the string cc123bb starts with any character in the range a to d. Returns true.
    SELECT 'cc123bb' RLIKE '^[a-d]';
    
    -- Check whether the string 12abc34 starts with 12, ends with 34, and contains at least one character in the range a to d in between. Returns true.
    SELECT '12abc34' RLIKE '^12[a-d]+34$';

Correspondência de caracteres de escape

O operador RLIKE usa a barra invertida (\) como caractere de escape. Portanto, toda barra invertida (\) em um padrão de expressão regular exige escape duplo.

  • Exemplo 1

    Para corresponder à string a+b, em que + é um caractere especial de regex, aplique escape. No mecanismo de regex, isso se expressa como a\+b. Como uma camada adicional de escape é obrigatória, a expressão correspondente à string é a\\+b.

    SELECT 'a+b' RLIKE 'a\\+b';
    
    -- Results:
    +------+
    | _c1  |
    +------+
    | true |
    +------+
  • Exemplo 2

    Se a string contiver um caractere de tabulação (TAB), o sistema armazena \t como um único caractere durante a leitura. Assim, o padrão de regex o trata como um caractere comum.

    SELECT 'a\tb', 'a\tb' RLIKE 'a\tb';
    
    -- Results:
    +---------+------+
    | _c0     | _c1  |
    +---------+------+
    | a     b | true |
    +---------+------+

Grupos de caracteres

Grupos de caracteres POSIX

Grupo de caracteres

Descrição

Equivalente

[[:alnum:]]

Letras e dígitos

[a-zA-Z0-9]

[[:alpha:]]

Letras

[a-zA-Z]

[[:ascii:]]

Caracteres ASCII

[\x00-\x7F]

[[:blank:]]

Espaço e tabulação

[ \t]

[[:cntrl:]]

Caracteres de controle

[\x00-\x1F\x7F]

[[:digit:]]

Dígitos

[0-9]

[[:graph:]]

Caracteres imprimíveis, exceto espaço

[\x21-\x7E]

[[:lower:]]

Letras minúsculas

[a-z]

[[:print:]]

[:graph:] mais espaço

[\x20-\x7E]

[[:punct:]]

Pontuação

[][!"#$%&'()*+,./:;<=>?@\^_{

}~-]`

[[:space:]]

Caracteres de espaço em branco

[ \t\r\n\v\f]

[[:upper:]]

Letras maiúsculas

[A-Z]

[[:xdigit:]]

Dígitos hexadecimais

[A-Fa-f0-9]

Nota

O MaxCompute não oferece suporte a \f ou \v.

Grupos de caracteres chineses

Grupo de caracteres

Padrão

Caracteres de dois bytes (por exemplo, caracteres chineses)

[^\\\x{00}-\\\x{ff}]

Caracteres chineses

[\\x{4e00}-\\x{9fa5}]

Pontuação chinesa

Os sinais de pontuação chineses não possuem um intervalo de codificação unificado. Pesquise os pontos de código Unicode da pontuação chinesa em um mecanismo de busca e use operadores para excluí-los individualmente.