Notepad ++ / Regular Expression para encontrar a linha com o mesmo começo, final diferente

1

Então, eu li um pouco e descobri que o NotePad ++ não usa regex "normal" (começando a pensar que vou voltar para o SciTE), mas aqui está minha pergunta:

Eu tenho uma lista exportada de dados com alguns dados redundantes que estou tentando limpar e converter em um bom CSV para importar em catálogos de endereços (migrando uma solução de servidor de fax, o antigo é OOOOLD e assim é o melhor que posso obter para exportação).

A linha que estou tentando remover de cada grupo de entrada sempre começa

Entry: NAME ~

E, em seguida, há um código alfanumérico de 12 dígitos (parece ser Hexadecimal), que é exclusivo para cada grupo de entrada. Para alguns grupos de entrada, há uma entrada legível após "NAME", mas estes são poucos o suficiente. Eu posso removê-los manualmente, então combiná-los não é uma grande tarefa.

Então, o que eu quero fazer é encontrar todas as linhas que começam com Entry: e selecioná-las até o final da linha. Cada entrada em cada grupo está em uma linha separada. Então eu vou usar o Find & Substitua para remover essas linhas da lista.

ATUALIZAÇÃO: entrada & Outpu

Entry: NAME ~00003193820
ShortName: ~00003193820
Owner: USRENAME
Name: John
FamilyName: John
DearName: John
Organisation: Acme 1 Corp
Via: FAX-ANY 1(555) 123-4567

Entry: NAME ~00003193820
ShortName: ~00003193820
Owner: USRENAME
Name: Sam
FamilyName: Sam
DearName: Sam
Organisation: Acme 2 LLC
Via: FAX-ANY 1(555) 890-1234

Aqui estão dois grupos de entrada. Eu quero remover as linhas que começam com "Entrada:" de cada grupo.

    
por music2myear 06.02.2012 / 17:16

2 respostas

2

Outra opção seria

^Entry: NAME .*

O qual procurará linhas começando com Entry: NAME e qualquer coisa depois disso.

    
por 06.02.2012 / 18:32
3

Usando

^Entry: NAME ~\d+$

como o padrão de pesquisa parece funcionar conforme solicitado.

Eu pessoalmente recomendaria a correspondência usando o espaço reservado \d (que corresponde a um único dígito no intervalo de 0 a 9 ) em vez de um espaço reservado . mais geral. Na verdade, você deveria fazer isso:

^Entry: NAME ~\d{12}$

para especificar que você espera exatamente 12 dígitos em uma linha. Dessa forma, se uma entrada puder conter algo que você não esperava, não a substitua por acidente.

Se a string estiver em notação hexadecimal, você pode usar:

^Entry: NAME ~[0-9a-fA-F]{12}$

Por favor, note que eu não verifiquei se os dois últimos exemplos funcionavam corretamente no Notepad ++, mas, que eu saiba, é uma sintaxe muito básica.

    
por 06.02.2012 / 18:18