我对这个帖子标题感到抱歉,但我没有找到更好的标题来解决这个问题。
我有一个如下列表:
/////////////////////////
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
/////////////////////////
以下正则表达式为上面的一些列表行添加了书签:
(?:^|\R)\K\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R)
使用此正则表达式添加书签的行:
1,456,729
1,412,750
243
184
1,129
672
916
78
但我不喜欢这个!我想为我的正则表达式匹配部分添加书签。
例如,我想在我的列表中为以下部分添加书签:
/////////////////////////
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
/////////////////////////
我尝试遵循正则表达式但不适合我:
^/////////////////////////\R((?:(?!^/////////////////////////).)*)\R\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R)
^(?:(?!^/////////////////////////).)*\R\d+(?:,\d+)*\R\d+(?:,\d+)*(?=\R/////////////////////////)
如何在记事本++中通过正则表达式来做到这一点?
换句话说,正则表达式必须为我的正则表达式匹配之前的所有行添加书签,直到最后一行包含/////////////////////////
,以及我的正则表达式匹配之后的所有行直到第一行包含/////////////////////////
如果您想获得中间的匹配项,则可以仅在一行中使用正斜杠来开始匹配。
然后使用
\K
不将其包含在匹配中,并继续匹配没有至少 2 个连续行与数字匹配的所有行。然后将至少 2 个连续行与数字匹配,并继续匹配所有不只包含正斜杠的行,并在最后断言有一行只包含正斜杠。
正则表达式演示
或者更短、更宽松的变体:
正则表达式演示