Expressões Regulares

Preciso de ajuda, por favor , para o seguinte exercício , tenho ^[a-z]{6}(?=\S|$) , é possível fazer uma mais específica ?
Escreva uma expressão regular que reconheça unicamente as seguintes palavras:
apaga
copia
cria
mostra
mostra
muda
 
É possível fazer uma mais específica? Sim, é.
O enunciado diz "unicamente", ou seja, tem de reconhecer essas palavras. O que tens reconhece palavras que não devia, como "aaaaaa", e da lista do enunciado só reconhece uma palavra (que está repetida?).

Nota que, em princípio, uma lista dessas palavras separadas por "|" é uma resposta correcta ao enunciado, embora talvez não seja o melhor uso das expressões regulares.
 
Pensei o mesmo que tu. Se pretendem apenas aquelas palavras, não estou a ver outra maneira a não ser:
Código:
(apaga|copia|cria|mostra|muda)

Para o OP, deixo a dica de usar o regex101 para testar as expressões.
Dá para simplificar muito ligeiramente, tipo
Código:
(apag|copi|cri|mostr|mud)a
mas para fazer isto acho que preferia deixar por extenso, como tens, na eventualidade de esta lista vir a ser alargada mais tarde com palavras que não terminem em "a" (ou fica um monstro, ((abc|def|ghi)a|(jkl|mno)))

Normalmente a ideia é não dar logo a resposta ao enunciado e deixar o (a?) OP tentar chegar lá sozinho/a, mas como deixou o post e não voltou a aparecer, acho que por esta altura também já não faz mal.
 
Back
Topo