Analise a função a seguir. preg_match('/^(\d{1,2}([a-z]+))(?...

Próximas questões
Com base no mesmo assunto
Ano: 2010 Banca: IADES Órgão: CFA Prova: IADES - 2010 - CFA - Designer |
Q507710 Programação
Analise a função a seguir.

preg_match('/^(\d{1,2}([a-z]+))(?:\x*)\X+ (?=20[0-9]0)/', '15x21cm Couchê 120g modelo 2010', $ocorrencias);

Quantos elementos o vetor $ocorrencias conterá após a execução da função?

A quantidade de itens certos é igual a
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - 3

Para entender a resposta dessa questão, precisamos analisar a função preg_match do PHP e a expressão regular fornecida. A função preg_match é utilizada para realizar uma busca por padrões em uma string através de uma expressão regular, e caso encontre o padrão, ela preenche o array $ocorrencias com os grupos capturados pela expressão.

A expressão regular fornecida é /^(\d{1,2}([a-z]+))(?:\x*)\X+ (?=20[0-9]0)/ e a string alvo é '15x21cm Couchê 120g modelo 2010'. Vamos decompor a expressão regular para entender seus componentes:

  • ^ - indica o início da string.
  • (\d{1,2}) - um grupo de captura que procura de um a dois dígitos numéricos.
  • ([a-z]+) - um subgrupo de captura dentro do primeiro grupo que procura uma ou mais letras minúsculas.
  • (?:\x*) - um grupo de não captura que procura zero ou mais ocorrências do caractere \x (neste caso, parece ser um erro na expressão, já que \x seguido de dois dígitos hexadecimais normalmente é usado para denotar um caractere ASCII).
  • \X+ - procura um ou mais caracteres que não sejam espaços brancos.
  • (?=20[0-9]0) - um lookahead positivo que busca a presença da sequência "20", seguida de qualquer dígito e terminando com "0".

O grupo (\d{1,2}([a-z]+)) captura "15x", onde "15" é um número de um ou dois dígitos e "x" são os caracteres minúsculos subsequentes. O subgrupo ([a-z]+) captura apenas o "x". O lookahead positivo (?=20[0-9]0) verifica se a sequência "2010" está no final da string, mas não a captura.

Portanto, após a execução da função preg_match, o vetor $ocorrencias conterá:

  1. O padrão inteiro capturado ("15x").
  2. O primeiro grupo de captura ("15x").
  3. O subgrupo de captura dentro do primeiro grupo ("x").

Isso resulta em um total de 3 elementos. Por isso, a alternativa C está correta.

Clique para visualizar este gabarito

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