Ao executar a instrução SELECT SUBSTRING ('XY1234Z', 'Y*([0-...

Próximas questões
Com base no mesmo assunto
Q839372 Banco de Dados
Ao executar a instrução SELECT SUBSTRING ('XY1234Z', 'Y*([0-9]{1,3})'); no PostgreSQL versão 9.4 será exibido o valor
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - 123.

Para compreender a resposta correta, é importante conhecer como a função SUBSTRING funciona no PostgreSQL, especialmente quando utilizada com expressões regulares. A função SUBSTRING, no contexto de padrões de texto, é usada para extrair partes de uma string que correspondem a um padrão especificado.

No caso dessa questão, o padrão usado foi 'Y*([0-9]{1,3})'. As expressões regulares funcionam da seguinte maneira:

  • Y* - Este trecho corresponde a zero ou mais ocorrências do caractere 'Y'. No entanto, de acordo com a expressão fornecida, ele não é seguido por um ponto, que representaria qualquer caractere, então o asterisco não tem efeito prático.
  • ([0-9]{1,3}) - Esta parte da expressão representa um grupo de captura que corresponde a um mínimo de 1 e um máximo de 3 dígitos numéricos (de 0 a 9).

Ao aplicar essa expressão à string 'XY1234Z', o PostgreSQL irá procurar por até três dígitos consecutivos que sigam a letra 'Y'. Na string fornecida, os três dígitos que seguem 'Y' são '123', que é o que a função SUBSTRING irá extrair e retornar, daí a resposta correta ser 123. A parte '4Z' da string não é incluída, pois a expressão regular limita a captura a no máximo 3 dígitos.

O entendimento das expressões regulares é fundamental para resolver essa questão, e o conhecimento das funções do PostgreSQL, como a SUBSTRING com expressões regulares, é indispensável para quem lida com extração e manipulação de textos em Bancos de Dados.

É importante ressaltar que as expressões regulares são uma ferramenta muito poderosa e amplamente utilizada no mundo da programação e manipulação de dados, e o PostgreSQL oferece um bom suporte a elas, permitindo aos usuários executar operações complexas de busca e substituição de texto.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Por quê o Y não aparece?

olá Breno,

a expressão está selecionando a substring com caracteres da posição 1 a 3 da String "Y1234", sendo a contagem iniciada em 0. Ou seja, o Y encontra-se na posição 0, não sendo selecionado.

FYI, exemplo tirado de https://www.postgresql.org/docs/9.4/static/functions-matching.html#POSIX-MATCHING-RULES

entrega pra deus

 

ou nao

Quem não tem acesso:  - -> A

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo