Questão nº 52
Questão de Tecnologia da Informação · FCC TRT24 2016 (nº 52)
FCC2016Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓
Ao executar a instrução `SELECT SUBSTRING('XY1234Z', 'Y*([0-9]{1,3})');` no PostgreSQL versão 9.4 será exibido o valor
- A123 (alternativa correta)
- BY12
- CY
- D1234
- EXY1
Resposta comentada
Gabarito Alternativa A
A função SUBSTRING(string, padrão_regex) no PostgreSQL extrai uma parte da string que corresponde ao padrão_regex. Se o padrão_regex contiver grupos de captura (partes entre parênteses ()), a função retorna o texto que corresponde ao primeiro grupo de captura encontrado, e não a correspondência completa do padrão.
- (A) Correta: O padrão
'Y*([0-9]{1,3})'busca zero ou mais 'Y's (Y*) seguido por um grupo de captura()que contém de 1 a 3 dígitos ([0-9]{1,3}). Na string'XY1234Z',Y*casa com o 'Y'. Em seguida, o grupo de captura([0-9]{1,3})casa com '123'. Como há um grupo de captura, a função retorna o conteúdo desse grupo, que é '123'. - (B) Incorreta: A armadilha aqui é pensar que a função retornaria a parte da string que começa com 'Y' e inclui o grupo de captura, ou que o grupo de captura pararia em '12'. No entanto,
SUBSTRINGcom grupo de captura retorna apenas o que está dentro dos parênteses, e o quantificador{1,3}faz com que o grupo capture o máximo de dígitos possível dentro do seu limite (3 dígitos), ou seja, '123'. - (C) Incorreta: O grupo de captura
([0-9]{1,3})é definido para capturar dígitos, não o caractere 'Y'. - (D) Incorreta: O quantificador
{1,3}dentro do grupo de captura([0-9]{1,3})limita a correspondência a no máximo 3 dígitos. Portanto, '1234' excede esse limite. - (E) Incorreta: O caractere 'X' não faz parte do padrão
Y*([0-9]{1,3})e a correspondência começa a partir do 'Y'. Além disso, o grupo de captura capturaria '123', não apenas '1'.
Fonte: FCC TRT24 2016 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.