Как удалить все группы, содержащие указанное c слово Notepad ++ - PullRequest
0 голосов
/ 25 января 2020

У меня есть файл notepad ++ с множеством групп, содержащий запись «spawn: 0». Я хочу найти все группы, содержащие эту запись, и полностью удалить группы.

Здесь Пример текста ниже показывает, что я хочу сохранить в своем документе и что я хочу удалить из моего документа.

world_C:-117123:26:323196: stacks: Cave Spider:1; location: world_C:-117123:26:323196 placedby: 1438b703-b91a-4fee-a853-db0d279c30d9 spawns: 90

Я хочу оставить те, которые выглядят так, как показано выше

Но я хочу удалить те, которые похожи на любой из этих ниже. world_C:-201259:37:274108: spawns: 0 stacks: Cave Spider:1; location: world_C:-201259:37:274108 world_C:-201269:36:274092: stacks: Cave Spider:1; location: world_C:-201269:36:274092 spawns: 0 world_C:-7230:26:325504: location: world_C:-7230:26:325504 spawns: 0 stacks: Skeleton:1; world_C:-288294:32:34488: location: world_C:-288294:32:34488 spawns: 0 stacks: Zombie:1; world_C:183436:65:240637: location: world_C:183436:65:240637 spawns: 0 stacks: Spider:1; world_C:-277077:33:-151565: stacks: Cave Spider:1; location: world_C:-277077:33:-151565 spawns: 0 world_C:-277084:49:-151582: spawns: 0 stacks: Skeleton:1; location: world_C:-277084:49:-1515821

Результатом будет документ, который не содержит никаких групп со словами «порождает: 0».

1 Ответ

1 голос
/ 27 января 2020
  • Ctrl + H
  • Найти что: ^\h+world_C:(?:(?!^\h+world_C).)*spawns: 0\b.*?(?=^\h+world_C|\Z)
  • Заменить на: LEAVE EMPTY
  • ПРОВЕРКА Матч
  • ПРОВЕРКА Обтекание
  • ПРОВЕРКА Регулярное выражение
  • CHECK . matches newline
  • Заменить все

Пояснение:

^                       # beginning of line
  \h+                   # 1 or more horizontal spaces
  world_C:              # literally
  (?:                   # non capture group
    (?!^\h+world_C)     # negative lookahead, make sure we haven't world_C with onlyy spaces before
    .                   # any character
  )*                    # end group, may appear 0 or more times
  spawns: 0\b           # literally, the word boundary prevents matching 0123
  .*?                   # 0 or more any character, not greedy
  (?=                   # positive lookahead, make sure we have after:
    ^                   # beginning of line
     \h+                # 1 or more horizontal spaces
     world_C            # literally
    |                 # OR
     \Z                 # end of file
  )                     # end of lookahead

Снимок экрана (до):

enter image description here

Снимок экрана (после):

enter image description here

...