Expressão regular: matematicamente vs. programaticamente
-
26-09-2019 - |
Pergunta
Considere as seguintes expressões regulares:
- 7+
- (7)+
Alguém que está muito familiarizado com a teoria regular da expressão em matemática concorda que as duas expressões regulares são semanticamente as mesmas?
Solução
Sim, essas duas expressões regulares são iguais porque ambas reconhecem o mesmo idioma. O fato de eles não serem escritos de forma idêntica é apenas uma questão notacional.
Outras dicas
Programaticamente (como em avaliado pelo mecanismo de expressão regular de um idioma) ele difere apenas no captura de grupos resultante.
Fora isso, eles são iguais. É como escrever ((7) + (1))
por oposição como 7 + 1
. Elas avaliar são os mesmos. (Sim, matematicamente falando, idiomas regulares não avaliam nada)
Eles descrevem o mesmo idioma? Sim. Eles significam a mesma coisa para alguém que está tentando interpretar o idioma? Não. O segundo me diz que eu deveria estar mais interessado nos 7s.
O segundo reduz a primeiro. Você concorda que
ab+
e
a(b)+
e
(ab)+
são semanticamente diferentes?
A única diferença é que os parens atribuem o padrão fechado a um grupo para que você possa fazer referência a esse pequeno pedaço após a avaliação.