Substituir devolve grupo de captura errado


1

Eu tenho um arquivo de texto que é algo como isto:

,'','a','bc','def','ghi','lmn','op','qr','stu'

Estou tentando substituir grupos de 5 com a correspondência e uma quebra de linha para fácil legibilidade. Então, eu estou tentando fazer uma correspondência de regex e substituir.

Encontre o que: ([\,]+[\']+[A-Z]{0,3}[\']+){5}
Substituir com: \1\r\n

O acima no Notepad ++ (versão 6.8.8) irá encontrar / combinar

,'','a','bc','def','ghi'

mas substitui com

,'ghi'[CR][LF]

Eu também tentei substituir com \1\2\3\4\5\r\ne produz exatamente o mesmo resultado. Qualquer idéia seria muito apreciada.


Qual é a saída que você está esperando?
tachomi

Eu estou esperando que ele substitua ,'','a','bc','def','ghi' com ,'','a','bc','def','ghi'[CR][LF]
Jpsh

Respostas:


0

Replace With: $0\r\n Acabei trabalhando, eu acho que \ 1 era para versões anteriores a 6.


Nope - \ 1 é um primeiro grupo de captura ([\,] + [\ '] + [AZ] {0,3} [\'] +) que você está correspondendo 5 vezes, então \ 1 em substituir capturar a última partida . (([\,] + [\ '] + [AZ] {0,3} [\'] +)) grupo de captura é o que você deve combinar \ 1 enquanto \ 2 ainda é o ultimo '... ' na linha. No entanto, você encontrou melhor RegEx de qualquer maneira ...
g2mk
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.