Sinto muito pelo título deste post, mas não encontrei um título melhor para este problema.
Eu tenho uma lista como a seguinte:
/////////////////////////
Mitnhnhnksmuion
2,687,064
Etyjyjes
1,897,331
Pihjloyd
1,466,137
Edddlnnnnney
1,297,624
Thjtyjkujkes
1,241,307
Fnnhhnac
1,159,710
AfdBhhhghghBA
1,113,062
Elnhhyhjkukjhn
1,023,500
Bggggggel
1,009,075
Letjyjnhhtrh
991,284
Bahtyjtjyjd
849,265
1980Q4
/////////////////////////
Eayes
4,228,223
Elhyjtyjey
1,456,729
1,412,750
Lein
243
184
AA
1,129
672
Elejntyj345hn
002,570
Neerthty34ond
916
78
Biwertetoel
910,353
Qen
874,812
Bs
877,293
Pyd
850,146
1978Q1
/////////////////////////
Mteichrtertson
2,747,969
Eatertglertees
1,885,332
Pirtertd
1,490,156
Elverts
1,295,789
TtrrheBerteaerttles
1,239,194
Fleterteter
1,156,907
ABB
1,117,183
E
1,027,583
Bi
1,010,372
LedZ
987,821
Barb
850,687
1980Q4
/////////////////////////
seguinte regex marca algumas das linhas da lista acima:
(?:^|\R)\K\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R)
linhas marcadas com este regex:
1,456,729
1,412,750
243
184
1,129
672
916
78
mas eu não gosto disso! Quero marcar minhas seções de correspondências de regex.
por exemplo, quero marcar a seguinte seção na minha lista:
/////////////////////////
Eayes
4,228,223
Elhyjtyjey
1,456,729
1,412,750
Lein
243
184
AA
1,129
672
Elejntyj345hn
002,570
Neerthty34ond
916
78
Biwertetoel
910,353
Qen
874,812
Bs
877,293
Pyd
850,146
1978Q1
/////////////////////////
Tentei seguir o regex, mas não funcionou para mim:
^/////////////////////////\R((?:(?!^/////////////////////////).)*)\R\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R)
^(?:(?!^/////////////////////////).)*\R\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R/////////////////////////)
como fazer isso por regex no notepad++?
em outras palavras, regex deve marcar todas as linhas antes de minhas correspondências de regex até a inclusão da última linha /////////////////////////
e todas as linhas após minha correspondência de regex até a inclusão da primeira linha/////////////////////////
Se quiser obter as partidas intermediárias, você pode iniciar a partida apenas com barras em uma linha.
Em seguida, use
\K
para não incluí-lo na correspondência e continue combinando todas as linhas que não tenham pelo menos 2 linhas consecutivas correspondentes aos números.Em seguida, combine pelo menos 2 linhas consecutivas com os números e continue combinando todas as linhas que não contêm apenas barras e afirme no final que há uma linha contendo apenas barras.
Demonstração Regex
Ou uma variante um pouco mais curta e um pouco mais permissiva:
Demonstração Regex