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.