Pergunta

Would there be a difference between (aa)* and (a*a*)?

Is there a distributive property?

Foi útil?

Solução

Kleene star does not distribute. (ab)* is very different from (a*b*).

In your specific example, (aa)* would match groups of two as (thus, it only matches even numbers of as), while (a*a*) is equivalent to (a*) and matches any sequence of as. (In that case, L((aa)*) is a proper subset of L((a*a*)), but this is not necessarily true for a general regex).

Outras dicas

The (aa)* group does not match the whole aaa so yes, there's a difference, it only return you a group of 2 a.

But (a*a*) is just the same as (a*).

Yes, there is a difference. (aa)* would be groups of aa, whereas (a*a*) would be a's.

Basically, the first phrasing would only be even numbers of a, whereas the second would not in this case.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top