Índice Anterior Próxima

Precedência entre metacaracteres

Está gostando da leitura? Está aprendendo? Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!

Falamos falamos, mas para fechar o estudo dos metacaracteres, faltou conhecer os relacionamentos entre eles, quem é mais forte, mais fraco, quem arrasta os outros...

É bem simples, sabe na matemática, onde temos as ordens de precedência entre a adição e a multiplicação, onde esta é mais "forte" que aquela?

Por exemplo "2+4*6", é "quatro vezes seis, e depois soma com o dois". Mesmo vindo depois, a multiplicação tem preferência. Com as ERs acontece o mesmo, seguindo estas regras:

tipo de meta	exemplo	precedência
quantificador	ab+	maior
concatenação	ab	média
ou      	ab|c	menor

Ou seja, na situação ab* não é "a com b, em qualquer quantidade", e sim "a, seguido de b em qualquer quantidade", ou seja, a concatenação a seguido de b não é mais forte que a quantificação, que rouba o b para ela.

Na última ab|c em vez de "a, seguido de b ou c" é na verdade "ab ou c", pois o ou é o mais fraquinho de todos, não puxa nada para o cesto dele.

Por isso que boa-tarde|boa-noite funciona, pois os caracteres se juntam e se grudam uns com os outros, e o ou não tem força para quebrar isso.

E como na matemática também, os parênteses servem para juntar na marra e dar força aos fracos. Por isso se diz que o grupo aumenta o poder do ou.

Só com a dobradinha grupo+ou é possível algo como boa-tard(e|b)oa-noite, o que não faz sentido, mas mostra que juntos eles conseguem quebrar a união da concatenação.

Com isso em mente, como fica a relação de forças em ab|cd*? Vamos colocar os "amigos" entre chaves para ilustrar essa quebra de braço:

ab|c{d*}

O d é do * pela quantificação ser mais forte que a concatenação, então o c coitado não tem força para puxar o seu amigo d para o seu lado.

ab|{c{d*}}

Agora o c fica na dúvida, mas se juntar com o | não dá, pois ele é o mais fraquinho de todos, então ele se junta com o d quantificado. Como o | já perdeu a briga à direita, ele olha para o outro lado e...

{ab}|{c{d*}}

O b rapidinho se junta com o a (concatenação) para fugir do fracote. É como no primário onde sempre tem aquele cara desengonçado que fica por último na escolha dos jogadores para o futebol com bola de meia, o | fica com o que sobrou, de um lado ab e do outro cd*.

Esse mundo é mesmo muito cruel com os mais fracos, até os metacaracteres sofrem com essa discriminação &:)


Índice Anterior Próxima