Sublime text Find Substituir qualquer caractere

2

Existe uma maneira de encontrar e substituir usando um caractere especial que permita que qualquer caractere esteja em seu lugar?

O que quero dizer com isto é dizer que tenho o seguinte texto:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

e eu queria substituir usando algo como (mds3a1.getI *** (). toString ()); substituindo o final de todas as linhas acima após a inicial (.

Onde * pode ser igual a qualquer caractere. Permitindo-me substituir as terminações de todas as linhas acima, mesmo que elas não sejam necessariamente exatamente as mesmas. Uma linha seria parecida com:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

Eu já vi uma funcionalidade semelhante em outros programas, mas não sei exatamente qual é a palavra para esse comportamento.

EDITAR: Acabei procurando expressões regulares como @DavidPostill apontou abaixo.

Para fazer o que eu queria, acabei com o seguinte:

find: (\(mds3a1.getJ)....+(().toString\(\)\);)
replace: 

que me deixaria com o texto de cada linha até e não incluindo o primeiro (

Para quem quer usar regex com texto sublime, aqui está um bom recurso que encontrei. link

    
por Charles S 02.12.2015 / 22:30

2 respostas

1

Parece que a resposta MattDMo não é o padrão correto para os resultados desejados. Veja o que fiz para uma solução mais elegante:

Open Sublime Text 2

Cole o bloco:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

Localizar > Substitua ( CTRL + H )

Botão Ativar Expressões Regulares ( Alt + R )

Encontre o que: \(.*

Substituir por: [ sem caracteres aqui ]

Prima Replace All

Concluído

O resultado é o que você estava pedindo:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

Divisão de regex:

\( Corresponder e escapar do caractere ( .

. Corresponde a qualquer caractere único.

* Corresponde o caractere anterior 0 ou mais vezes.

    
por 03.12.2015 / 22:38
1

Ative a pesquisa regex na caixa de diálogo Localizar e use o seguinte padrão:

^(.*?)(?=\()

Isso começa no início da linha ( ^ ) e, em seguida, captura qualquer caractere ( (.*?) ) até a antecipação positiva que não captura ( (?=\() ).

    
por 02.12.2015 / 23:19