REGEXP_ SUBSTR função - AWS Clean Rooms

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

REGEXP_ SUBSTR função

Retorna caracteres de uma string pesquisando nela por um padrão de expressão regular. REGEXP_ SUBSTR é semelhante à Função do SUBSTRING função, mas permite pesquisar um padrão de expressão regular em uma string. Se a função não conseguir corresponder a expressão regular com nenhum caractere na string, ela retornará uma string vazia.

Sintaxe

REGEXP_SUBSTR ( source_string, pattern [, position [, occurrence [, parameters ] ] ] )

Argumentos

source_string

Uma expressão de string a ser pesquisada.

pattern

Um literal de string que representa um padrão de expressão regular.

position

Um inteiro positivo que indica a posição em source_string para começar a pesquisar. A posição é baseada no número de caracteres, e não bytes, de forma que caracteres multibyte são contados como caracteres simples. O padrão é um. Se a posição for menor que 1, a pesquisa começará no primeiro caractere da source_string. Se position for maior que o número de caracteres na source_string, o resultado será uma string vazia ("").

occurrence

Um número inteiro positivo que indica qual ocorrência do padrão usar. REGEXP_ SUBSTR pula a primeira ocorrência -1 partidas. O padrão é um. Se a ocorrência for menor que 1 ou maior que o número de caracteres em source_string, a pesquisa será ignorada e o resultado será. NULL

parameters

Uma ou mais literais de sequências que indicam como a função corresponde o padrão. Os valores possíveis são os seguintes:

  • c – Executa a correspondência diferenciando maiúsculas e minúsculas. O padrão é usar a correspondência diferenciando maiúsculas e minúsculas.

  • i – Executa a correspondência sem diferenciar maiúsculas de minúsculas.

  • e – Extrai uma subsequência usando uma subexpressão.

    Se o padrão incluir uma subexpressão, REGEXP _ SUBSTR corresponderá a uma substring usando a primeira subexpressão no padrão. Uma subexpressão é uma expressão dentro do padrão que está entre parênteses. Por exemplo, para o padrão 'This is a (\\w+)' faz correspondência com a primeira expressão com a string 'This is a ' seguida por uma palavra. Em vez de retornar o padrão, REGEXP _ SUBSTR com o e parâmetro retorna somente a string dentro da subexpressão.

    REGEXP_ SUBSTR considera somente a primeira subexpressão; subexpressões adicionais são ignoradas. Se o padrão não tiver uma subexpressão, REGEXP _ SUBSTR ignorará o parâmetro 'e'.

  • p — Interprete o padrão com o dialeto Perl Compatible Regular Expression (PCRE).

Tipo de retorno

VARCHAR

Exemplo

O seguinte exemplo retorna a porção de um endereço de e-mail entre o caractere @ e a extensão de domínio.

SELECT email, regexp_substr(email,'@[^.]*') FROM users ORDER BY userid LIMIT 4; email | regexp_substr -----------------------------------------------+-------------------------- Etiam.laoreet.libero@sodalesMaurisblandit.edu | @sodalesMaurisblandit Suspendisse.tristique@nonnisiAenean.edu | @nonnisiAenean amet.faucibus.ut@condimentumegetvolutpat.ca | @condimentumegetvolutpat sed@lacusUtnec.ca | @lacusUtnec

O exemplo a seguir retorna a porção da entrada correspondente à primeira ocorrência da string FOX com a correspondência sem diferenciar maiúsculas de minúsculas.

SELECT regexp_substr('the fox', 'FOX', 1, 1, 'i'); regexp_substr --------------- fox

O exemplo a seguir retorna a primeira parte da entrada que começa com letras minúsculas. Isso é funcionalmente idêntico à mesma SELECT declaração sem o c parâmetro.

SELECT regexp_substr('THE SECRET CODE IS THE LOWERCASE PART OF 1931abc0EZ.', '[a-z]+', 1, 1, 'c'); regexp_substr --------------- abc

O exemplo a seguir usa um padrão escrito no PCRE dialeto para localizar palavras contendo pelo menos um número e uma letra minúscula. Ele usa o ?= operador, que tem uma conotação específica de visualização antecipada em. PCRE Este exemplo retorna a parte da entrada correspondente à segunda palavra.

SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'p'); regexp_substr --------------- a1234

O exemplo a seguir usa um padrão escrito no PCRE dialeto para localizar palavras contendo pelo menos um número e uma letra minúscula. Ele usa o ?= operador, que tem uma conotação específica de visualização antecipada em. PCRE Este exemplo retorna a parte da entrada correspondente à segunda palavra, mas difere do exemplo anterior na medida em que usa a correspondência sem diferenciar maiúsculas de minúsculas.

SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'ip'); regexp_substr --------------- A1234

O exemplo a seguir usa uma subexpressão para encontrar a segunda string correspondente ao padrão 'this is a (\\w+)' usando a correspondência que não diferencia letras maiúsculas de minúsculas. Ele retorna a subexpressão dentro dos parênteses.

select regexp_substr( 'This is a cat, this is a dog. This is a mouse.', 'this is a (\\w+)', 1, 2, 'ie'); regexp_substr --------------- dog