O que reuni até agora:
- ^ -> corresponde ao primeiro símbolo
- $ -> corresponde ao último símbolo
- [] -> conjunto de caracteres que podem estar na posição
- | -> o operador "OR"
- ? -> a condição anterior é opcional
O que eu acho que o padrão significa:
a linha deve começar com an a
ou a b
ou terminar com a c
ou deve ser uma string vazia. Estou tendo problemas para desenhar o DFA para o padrão. O que está me confundindo é o símbolo "opcional". Não consigo entender quais strings não serão aceitas no idioma.
Alguém pode me apontar na direção certa?
^
corresponde ao início da linha.[ab]?
corresponde a "a" ou "b" ou nada.c?
corresponde a "c" ou nada.$
corresponde ao final da linha.Então, acho que essas linhas corresponderão: