Não, o * em .* significa "qualquer número da expressão anterior ", ou seja, zero ou mais de qualquer tipo de caractere que corresponda à expressão . .
Isso significa que .* corresponderá a aaaa e abcd , pois todos os caracteres em abcd correspondem a . . Ele também corresponderá a uma linha vazia, pois permite combinações zero .
Se você quiser encontrar uma linha que contenha um caractere repetido , use
/\(.\)*/
Esta expressão corresponde a "qualquer caractere, então o mesmo caractere , e então qualquer número de mais do mesmo caracter". O * poderia ser removido, a menos que você esteja procurando por linhas que contenham apenas um caractere repetido. Nesse caso, você deve ancorar a expressão no início e no final da linha, como
/^\(.\)*$/
O editor ed suporta expressões regulares basic . O modificador + é um modificador de expressão regular estendido . O ? obtido de ed ao usar /.+/ seria seguido por no match (ou No match no GNU ed ) se você tivesse ativado explicações de erro com o comando H . Isso ocorre porque ele tenta encontrar uma linha com um + , precedido por algum outro caractere.
A expressão regular estendida .+ ("corresponde a um ou mais de qualquer caractere") é equivalente à expressão regular básica ..* , ou seja, "corresponde a um caractere e zero ou mais de qualquer caractere". p>
De acordo com seu manual , o GNU ed deve suportar \+ em expressões regulares, de modo que ..* seja equivalente a .\+ , mas o GNU ed 1.14.2 no meu sistema OpenBSD não faz isso.