Pular para o conteúdo principal

Questão de Programação — JavaScript — VUNESP 2023

ProgramaçãoJavaScript
Código
vu073343
Banca
VUNESP
Órgão
DPE-SP
Ano
2023
Nível
Superior
Cargo
Agente de Defensoria - Analista Desenvolvedor
Um programador deseja fazer uma busca em uma String utilizando Expressões Regulares na linguagem Javascript. Dada uma String texto, ele deseja verificar a posição da String em que são encontrados três dígitos, seguidos de um espaço em branco (whitespace), seguidos de pelo menos um caractere a. Para tal, ele pode escrever a linha de código
  1. Alet indice = texto.search(/3\d\sa*/);
  2. Blet indice = texto.search(/000\sa+/);
  3. Clet indice = texto.search(/000_a*/);
  4. Dlet indice = texto.search(/\d\d\d_a*/);
  5. Elet indice = texto.search(/\d\d\d\sa+/);
Revelar gabarito e comentário

GabaritoE — let indice = texto.search(/\d\d\d\sa+/);

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Expressões Regulares em JavaScript – método search()

Gabarito: letra E. A expressão regular correta para encontrar a posição de três dígitos seguidos de um espaço em branco e pelo menos um caractere 'a' é let indice = texto.search(/\d\d\d\sa+/). A regex \d\d\d captura exatamente três dígitos, \s captura um espaço em branco, e a+ captura um ou mais caracteres 'a'. O método search() retorna o índice da primeira ocorrência do padrão na string.

Alternativa A — ❌ Incorreta

/3\d\sa*/ — Começa com o caractere literal '3' em vez de três dígitos. Além disso, a* permite zero ocorrências de 'a', contrariando o requisito de "pelo menos um caractere a". Erro duplo: uso de literal e quantificador errado.

Alternativa B — ❌ Incorreta

/000\sa+/ — Utiliza '000' literal, o que só corresponderia à string exata "000", e não a quaisquer três dígitos. O quantificador a+ está correto, mas o início está errado.

Alternativa C — ❌ Incorreta

/000_a*/ — Novamente '000' literal. O sublinhado _ não é um metacaractere para whitespace; corresponde ao caractere literal sublinhado. a* também permite zero 'a'. Múltiplos erros.

Alternativa D — ❌ Incorreta

/\d\d\d_a*/ — Reconhece três dígitos (\d\d\d), mas usa sublinhado _ em vez de \s para o espaço. O a* permite zero 'a'. Erro no espaço e no quantificador.

Alternativa E — ✅ Correta ⟵ GABARITO

/\d\d\d\sa+/ — Exatamente o padrão pedido: \d\d\d (três dígitos), \s (um espaço em branco), a+ (pelo menos um 'a'). A regex é eficiente e retorna o índice da primeira ocorrência através do método search().

PEGA ESSA DICA!

Em regex, \d equivale a qualquer dígito (0-9). \s representa qualquer caractere de espaço em branco (espaço, tabulação, etc.). O quantificador + significa "um ou mais", enquanto * significa "zero ou mais". Sempre verifique a diferença entre eles para atender aos requisitos de quantidade mínima.

Gabarito: letra E.

Link permanente: /questoes/vu073343