У меня есть следующее регулярное выражение в notepad ++, которое найдет строку, начинающуюся с «BGADD», и, если применимо, все последующие строки, начинающиеся с «+». Это совпадение работает, и я могу использовать replace (со строкой нулевой длины), чтобы удалить эти блоки текста из моего документа.
Regex:
^BGADD.*$(\R|\z)(^[+].*$(\R|\z))*
Однако я хотел бы сопоставить и удалить любые блоки текста, противоположные этому, так что у меня остается только то, что соответствует шаблону.
Я пробовал комбинации положительных / отрицательных поисков, но не смог придумать что-то, что работает - возможно, потому что обход должен быть фиксированной длины?
Заранее благодарю за любую помощь. Я пробовал многочисленные поиски и пытался реализовать различные вещи, которые я читал в похожих темах, но пока не получил.
Данные, с которыми я работаю:
BGADD 1000100010011000
+ 30001002300010035000
+ 91016 91017 9
+ 91024 91025 9
BGSET 10001002100001071000
+ 1011 1012
+ 1019 1020
BGADD 1000100010011000
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
BGSET 20001001200001012000
+ 1011 1012
SOMETHINGELSE 3000100230000
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
BGSET 30001003300001033000
BGSET 50001001500001035000
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
DIFFERENTTHING 19001001190
+ 1011 1012
+ 1019 1020
BGSET 19001002190001071900
BGADD 1000100010011000
Как это выглядит, если заменить регулярное выражение на пустую строку:
BGSET 10001002100001071000
+ 1011 1012
+ 1019 1020
BGSET 20001001200001012000
+ 1011 1012
SOMETHINGELSE 3000100230000
BGSET 30001003300001033000
BGSET 50001001500001035000
DIFFERENTTHING 19001001190
+ 1011 1012
+ 1019 1020
BGSET 19001002190001071900
То, к чему я стремлюсь (то есть обратное):
BGADD 1000100010011000
+ 30001002300010035000
+ 91016 91017 9
+ 91024 91025 9
BGADD 1000100010011000
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
BGADD 1000100010011000
+ 30001002300010035000
+ 19001006290010013900
BGADD 1000100010011000