Como posso excluir o restante da linha após um segundo caractere específico na string?

0
dagaga2.com:8ddagd1:dbcc:eLXLBdRdd?a'badagahaha
dadadagh.com:299515:dgan6hhna:992969199269196
dad2agh.com:299515:dganhna:992969199269196
dadada5uwuwgh.com:299ju515:dgaenhna:9929691998d269196
dada12d6agh.com:29951ha165:dgaja2nhn126a:992969117123d72199269196

Como eu removo tudo depois do segundo cólon (:)
 para todas as linhas?
assim?

dagaga2.com:8ddagd1:
text:text:text:empty
text:text:text:empty
    
por tabopasog 07.03.2016 / 22:10

2 respostas

1

Uma solução mais geral comparada com a de Frank Thomas:

Encontre o que: (([^:]*\:){2}).*
Substituir por:

Isso removerá tudo depois do segundo :

    
por 07.03.2016 / 22:37
1

Na barra de localização e substituição, marque a caixa Regular expression e insira uma consulta como:

Encontre o que: (^\S*)(\:)(\S*)(\:)(.*)$

Substituir por:

Isso substituirá dagaga2.com:8ddagd1:dbcc:eLXLBdRdd?a'badagahaha por dagaga2.com:8ddagd1: .

Observequevocêdeveescapardoscaracteres:comumabarrainvertidaprincipal.Casocontrário,oanalisadorregexosleráincorretamente.

Oquevocêestáfazendoaqui,especificandogruposdecapturadentrodastring,em parênteses . Em seguida, adicione (.*) no final, para pegar todo o restante da string, seja ela qual for.

A instrução replace é uma Backreference , que diz "me dê apenas os dois primeiros grupos de captura". Grupos de captura são criados por parênteses, e é por isso que tivemos que colocar a string procurada dentro deles.

    
por 07.03.2016 / 22:25