2
respostas

Papagaio

Z\d+(\w)

Nao entendi esse exercício. Se o (\w) agrupa um numero ou uma letra ou um _, de que modo ele pegará apenas as letras e desconsiderará os números nesta expressão do exercício?

Z171PZ7AZ23PZ7819AZ78GZ1AZ99IZ34O

2 respostas

Vinicius, também fiquei com a mesma dúvida que você, mas depois consegui entender a lógica. Eu vou tentar explicar aqui como que essa expressão funciona.

Um negócio que me ajudou muito a entender o resultado foi aplicar a expressão sem o grupo, ou seja, apenas:

Z\d+\w

Analisando essa expressão, podemos quebrá-la em 3 partes: 1) Z - que pega a letra Z apenas 2) \d+ - que pega a ocorrência dos dígitos seguidos 3) \w - que pega qualquer caractere que vem depois dos dígitos seguidos

Nesse caso, o \w funciona porque ele vem logo depois do \d+, pois se houvesse algum número nessa parte 3 (\w), ele na verdade ele acabaria sendo da parte 2 (\d+).

Espero que a minha explicação tenho sido clara, achei meio difícil explicar isso com palavras hehehe,

Concordo com o Daniel.

A expressão regular é:

Z\d+(\w)

Repara que o Z vai consumir um caracter alfanumérico Z, o \d+ vai consumir um ou mais caracteres numéricos, e o (\w) vai consumir um word char.

Voltando a sua pergunta, não seria o (\w) que desconsidera um número, e sim o \d+ que já consumiu todos os números até chegarmos à parte do (\w). O único trabalho do (\w) então vai ser consumir um word char.