De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

vi - Deleção de caracteres

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 20 de Dezembro de 1999

Primeiramente, gostaria de corrigir um erro. A lista de vi fica no site eGroups, e para se cadastrar nela mande um email para <vi-br-subscribe (a) egroups com>. E o mantenedor da lista é o Aurélio Marinho Jargas (<aurelio (a) conectiva com br>).

Adicionalmente, a mensagem de ontem não foi muito clara em alguns pontos e eu estou aproveitando aqui para divulgar a mensagem que me foi enviada por Fernando M. Roxo da Motta (<ss51 (a) ep-ba petrobras com br>), que complementa admiravelmente os conceitos apresentados.

  > vi - Substituicoes
  > ---------------------------------------------------------------------
  > Suponhamos que eu queira mudar todas as ocorrencias das palavras
  > "hot", "hit", "h0t" , "hat" por host, mas apenas nas linhas em 
  > que estas palavras ocorram isoladamente:
  > 
  > :%s/^h.t$/host/
  > 
  > Estou procurando, na primeira parte do argumento de busca,
  > por palavras de tres letras comecadas em "h" e terminadas em
  > "t". Esta palavra deve estar no comeco da linha "^" e a linha
  > nao pode conter mais nada "$". O "." apos o "h" indica que
  > qualquer letra que estiver nesta posicao atendera a especificacao
  > da busca. Ou seja, todas as palavras procuradas (hot, hit, h0t e
  > hat) serao substituidas por "host".

Mas também "het", "h:t" e qualquer outra combinação imaginável. Então como restringir apeas às combinações desejadas ? Basta substituir o "." pela seqüência de caracteres aceitáveis :

  :%s/^h[oi0a]t$/host/

Repare que o par "[" e "]" marcam a posição de *apenas um* carater, portanto se aparecer uma linha contendo apenas "hoit" o que acontecerá ? Na hora de fazer a comparação :

O "h" vai bater com o "h" do padrão O "o" vai bater com a opção "o" do "[oi0a]" O "i" não vai bater com o "t", que é o próximo caráter a ser verificado

Portanto esta linha *não* vai bater com o padrão.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida