Estou batendo cabeça com um problema, mas não consigo encontrar uma solução adequada. O problema: Escreva uma expressão regular que corresponda a todas as ocorrências de caracteres ou palavras diferentes no texto. A ordem do texto deve ser exatamente esta:
por favor, jogue jogador
eu tentei
(pl|jogar|jogador)
mas selecionará apenas pl em todas as palavras por algum motivo. Então, alguém sabe por que isso acontece e é possível fazer isso usando apenas expressões regulares?
Link para regex101
Qualquer ajuda será apreciada.
Ao procurar alternativas, comece da palavra mais longa para a mais curta se elas tiverem/começar com caracteres comuns. Como
pl
,play
eplayer
todos começam compl
, apenaspl
(como a primeira alternativa) é correspondido.play
eplayer
não são considerados.Seu regex deve ser:
(player|play|pl)
.Nesse caso, as palavras são testadas/comparadas
player
primeiro, depois complay
seplayer
não foi encontrado e finalmente compl
se as outras duas palavras não foram encontradas.Você precisa especificar uma correspondência gulosa, então adicione
.*
no final do seu regex, assim:(pl|play|player).*
Você deve ter cuidado ao usar correspondências gananciosas, pois pode acabar combinando mais do que deseja.