Todos os produtos
Search
Central de documentação

MaxCompute:REGEXP_CONTAINS

Última atualização: Sep 17, 2026

A função REGEXP_CONTAINS verifica se uma string contém conteúdo correspondente a uma string ou expressão regular especificada.

Sintaxe

BOOLEAN REGEXP_CONTAINS(STRING <source>, STRING <pattern>)

Parâmetros

  • source: Obrigatório. Valor do tipo STRING. Especifica a string a ser pesquisada.

  • pattern: Obrigatório. Constante ou expressão regular do tipo STRING.

    Nota

    Use ^ (início da linha) e $ (fim da linha) para buscar uma correspondência exata. Como os operadores em expressões regulares têm precedência, coloque todo o conteúdo entre ^ e $ entre parênteses para garantir a lógica correta de correspondência.

Valor de retorno

Retorna um valor BOOLEAN. Aplicam-se as seguintes regras:

  • Se o valor de source corresponder ao pattern, a função retorna true. Caso contrário, retorna false.

  • A função retorna um erro se source ou pattern não for uma STRING ou for inválido.

  • Se source ou pattern for NULL, a função retorna NULL.

  • Se o pattern for uma string vazia, a função retorna true.

Exemplos

  • Exemplo 1: Validar um endereço de e-mail.

    SELECT  'foo@example.com' AS email, REGEXP_CONTAINS('foo@example.com', '@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+') AS is_valid;

    Resultado retornado:

    +-----------------+----------+
    | email           | is_valid |
    +-----------------+----------+
    | foo@example.com | true     |
    +-----------------+----------+
  • Exemplo 2: Usar ^ (início da linha) e $ (fim da linha) para buscar uma correspondência exata.

    Como os operadores em expressões regulares têm precedência, coloque todo o conteúdo entre ^ e $ entre parênteses para garantir a lógica correta de correspondência.

    • A expressão regular produz o resultado correto sem o uso de parênteses.

      SELECT
        'a@foo.com' AS email,
        REGEXP_CONTAINS('a@foo.com', '^([\\w.+-]+@foo\\.com|[\\w.+-]+@bar\\.org)$') AS valid_email_address,
        REGEXP_CONTAINS('a@foo.com', '^[\\w.+-]+@foo\\.com|[\\w.+-]+@bar\\.org$') AS without_parentheses;

      Resultado retornado:

      +------------+---------------------+---------------------+
      | email      | valid_email_address | without_parentheses |
      +------------+---------------------+---------------------+
      | a@foo.com  | true                | true                |
      +------------+---------------------+---------------------+
    • A ausência de parênteses na expressão regular afeta a saída.

      SELECT
        '!b@bar.org' AS email,
        REGEXP_CONTAINS('!b@bar.org', '^([\\w.+-]+@foo\\.com|[\\w.+-]+@bar\\.org)$') AS valid_email_address,
        REGEXP_CONTAINS('!b@bar.org', '^[\\w.+-]+@foo\\.com|[\\w.+-]+@bar\\.org$') AS without_parentheses;

      Resultado retornado:

      +------------+---------------------+---------------------+
      | email      | valid_email_address | without_parentheses |
      +------------+---------------------+---------------------+
      | !b@bar.org | false               | true                |
      +------------+---------------------+---------------------+
  • Exemplo 3: Usar uma string vazia como padrão.

    --Returns true.
    WITH dummy AS(SELECT '' AS PATTERN) SELECT REGEXP_CONTAINS('ABC',PATTERN) FROM dummy;

Funções relacionadas

A REGEXP_CONTAINS é uma função de string. Para mais informações sobre funções de pesquisa de strings ou transformação de formatos de string, consulte String Functions Overview.