Pular para o conteúdo

Fundação VUNESP · Exército Brasileiro — Escola de Saúde e Formação Complementar do Exército (ESFC… 2023

Questão 46 — Linguagens de Programação: PHP — Expressões Regulares (preg_replace)

Linguagens de Programação PHP — Expressões Regulares (preg_replace)

Fundação VUNESP 2023

Exército Brasileiro — Escola de Saúde e Formação Complementar do Exército (ESFCEx) · Oficial do Quadro Complementar do Exército · Caderno 008. Prova Objetiva — Modelo de prova (Versão) A

Gabarito disponível

Um trecho de código escrito na linguagem PHP é apresentado a seguir.
<?php
$x = "/^(\d{2})(\d{3})(\d{1})$/";
$y = "(\${1}-\${2}*\${3})";
$str = '001122';
$strn = preg_replace($x, $y, $str);
?>
O valor da variável $strn no final da execução do trecho de código será:
Selecione uma alternativa

Resolução comentada

A regex captura 2, 3 e 1 dígito e o replace gera (00-112*2).

'001122' tem 6 dígitos: grupo 1 = '00', grupo 2 = '112', grupo 3 = '2'. A substituição '(${1}-${2}*${3})' resulta em '(00-112*2)'. As barras invertidas em aspas duplas apenas escapam o cifrão para o PHP, e o preg_replace interpreta ${n} como referência.

Análise das alternativas

B) Errada: usa dígitos isolados, ignorando o tamanho dos grupos. C) Errada: omite o '*'. D) e E) Errada: a regex casa com a string, logo há substituição.

Referência: PHP Manual, preg_replace.

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: A

Fonte: Gabarito preliminar: Gabarito — página 22 (008 Informática, Versão A)