![Notepad++/Regular Expression para encontrar linha com o mesmo começo, final diferente](https://rvso.com/image/1304074/Notepad%2B%2B%2FRegular%20Expression%20para%20encontrar%20linha%20com%20o%20mesmo%20come%C3%A7o%2C%20final%20diferente.png)
Então, li um pouco e descobri que o NotePad++ não usa regex "normal" (começo a pensar que vou voltar ao SciTE), mas aqui está minha pergunta:
Eu tenho uma lista de dados exportada com alguns dados redundantes que estou tentando limpar e converter em um bom CSV para importar para catálogos de endereços (migrando uma solução de servidor de Fax, a antiga é OOOOLD e então esta é a melhor Posso obter para exportação).
A linha que estou tentando remover de cada grupo de entrada sempre começa
Entrada: NOME ~
E 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 "NOME", mas são poucas o suficiente para que eu possa removê-las manualmente, portanto, combiná-las 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 usarei Localizar e Substituir para remover essas linhas da lista.
ATUALIZAÇÃO: Entrada e Saída
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. Quero remover as linhas que começam com "Entry:" de cada grupo.
Responder1
Outra opção seria
^Entry: NAME .*
Que procurará linhas começando com Entry: NAME
e qualquer coisa depois disso.
Responder2
Usando
^Entry: NAME ~\d+$
pois o padrão de pesquisa parece funcionar conforme solicitado.
Eu pessoalmente recomendaria a correspondência usando o \d
espaço reservado (que corresponde a qualquer dígito no intervalo de 0
até 9
) em vez de um espaço reservado mais geral .
. Na verdade, você deveria até fazer isso:
^Entry: NAME ~\d{12}$
para especificar que você esperaexatamente12 dígitos seguidos. Dessa forma, se uma entrada contiver algo que você não esperava, você não a substitui por acidente.
Se a string estiver em notação hexadecimal, você poderá usar:
^Entry: NAME ~[0-9a-fA-F]{12}$
Observe que não verifiquei se os dois últimos exemplos funcionam corretamente no Notepad ++, mas, pelo que sei, tudo isso é uma sintaxe bastante básica.