Notepad ++ e regex encontrando o segundo caractere e mova-o para uma nova linha

0

Eu não estou familiarizado com o regex, estou usando o Notepad ++ para tentar limpar alguns dados que recebi. Existe uma maneira de encontrar uma segunda aparição de um personagem e colocá-lo em uma nova linha?

Por exemplo

1|name|surname|address|1|name|surname|address

Eu preciso encontrar a segunda aparição do número '1' e colocá-lo em uma nova linha.

1|name|surname|address
1|name|surname|address
    
por luthando hanana 06.09.2017 / 16:05

2 respostas

0
  • Ctrl + H
  • Encontre o que: \|(?=1\|)
  • Substituir por: \n ou \r\n depende da plataforma
  • Substituir todos

Explicação:

\|      : a pipe, must be escaped because it has special meaning in regex
(?=     : start lookahead, a zero length assertion to be sure we have after
  1     :   the digit 1
  \|    :   a pipe
)       : end lookahead

Substituição:

\n      : linebreak for linux files

ou

\r\n    : linebreak for windows
  • check Embrulhe
  • Verificar expressão regular
  • NÃO VERIFIQUE . matches newline

Resultado para o exemplo dado:

1|name|surname|address
1|name|surname|address
    
por 06.09.2017 / 18:02
0

Use isso na caixa de diálogo Substituir:

  • Encontre o que: ^(1[^1]*)\|1(.*)$
  • Substituir por: \n1

Explicação:

Pesquisar desde o início da linha para 1 seguido por qualquer número de not-1 , seguido por |1 , seguido por qualquer caractere até o final da linha.

Substitua pelo texto que corresponde ao interior do primeiro parêntese, seguido por nova linha e 1 e depois o texto que corresponde ao interior do segundo parêntese.

Não se esqueça de verificar se "Expressão regular" está marcada no "Modo de pesquisa".

    
por 06.09.2017 / 17:06