Não cosegui entender bem qual a função do meta-char '*'.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não cosegui entender bem qual a função do meta-char '*'.
Olá João,
um meta-char é um caractere que tem uma função especial na nossa expressão regular. No caso, o * representa um número arbitrário do caractere que veio logo antes dele. Ou seja, ele representa o caractere anterior, zero ou mais vezes.
Assim, a expressão regular ola* aceitaria as seguintes palavras:
ola
olaa
olaaa
ol
Como assim, "número abitrário"? É que as definições que eu acho, não resumem muito bem.
Por exemplo: "Matches the preceding subexpression zero or more times." Como assim, 0 ou mais vezes?
E sobre seu exemplo, ele aceitaria somente o "o" também? Como ele aceita o "ol"?
Obrigado desde já
Então, no meu exemplo, apenas o caractere a é alvo do meta-caractere *. Assim, a expressão regular ola* equivale em linguagem natural ao seguinte:
Aceite todas as palavras que:
1 - Comecem com o caractere 'o'
2 - Tenham logo depois o caractere 'l'
3 - Tenham logo depois uma quantidade qualquer do caracter 'a'
Assim, quando um caractere normal aparece em uma expressão regular, ele deve ser interpretado literalmente, como os caracteres o e l no exemplo. Já o caractere a é afetado pelo meta-caractere *, assim ele tem o seu significado alterado.
O significado que antes era Apenas um e exatamente um do caractere se altera para Zero, uma ou mais aparições desse caractere
Então, no caso do exemplo, essas e somente essas palavras seriam aceitas:
ol
ola
olaa
olaaa
...
olaaaaaaaaaaaaaaaaaaa
...
Note que a lista é infinita, mas mesmo assim não aceita todas as palavras. Por exemplo, as palavras
la
oaaa
aaa
e muitas outras não seriam aceitas pela expressão regular do exemplo.