E sobre:
$ echo 1.000000000000002, 0.999999999999999, 999.000999000999|
sed 's/\([09]\)\{2,\}/../g'
1.0..02, 0.9..9, 9..9.0..09..90..09..9
Isso é um [09]
seguido por si mesmo ( sendo uma referência anterior para o
[09]
capturado no grupo de captura \([09]\)
) repetido 2 ou mais vezes. Observe que é diferente de [0-9]\{3,\}
, que corresponderia a 0000
, mas também 0909
.
Nem todas as sintaxes de expressões regulares suportam referências anteriores. As Expressões Regulares Básicas padrão usadas por sed
do, Expressões Regulares Estendidas (como em egrep
) não fazem algumas implementações do ERE suportá-las como uma extensão. Esse é o caso do GNU sed
com a opção -r
/ -E
(outra extensão não padrão) com a qual você pode usar sed -E 's/([09]){2,}/../g'
aqui.
O Perl e as expressões regulares compatíveis funcionam, e parece que o suporte para expressões regulares do MATLAB eles também , e até mesmo suportam chamado backreferences como em perl
.