주석 코드를 메모장++로 대량 교체

주석 코드를 메모장++로 대량 교체

메모장++

나는 텍스트 블록에 대량 주석을 달 수 있는 방법(및 이를 실행 취소하는 코드)을 찾고 있습니다. 동일한 파일의 다른 부분을 무시합니다. 그러나 동시에 각 블록의 일부 차이점을 존중합니다.

예제 블록이 이미 주석 처리되었습니다.

Code to keep Above

#1291.5.21 = { #some more text to preserve
#   owner = XXX
#   controller = XXX
#   add_core = XXX
#   remove_core = XXX
#} #some more text to preserve

More code to keep below

XXX는 각 블록마다 다르지만 다른 파일에서는 동일할 수 있습니다(글자/숫자 세 개만 가능). 약간의 복잡성을 더하기 위해 정확히 XXX를 포함하는 블록은 이상적으로 무시되고 주석 처리된 상태로 유지됩니다.

블록 제한에 대한 유일한 실제 포인터는 날짜 = { 및 종료 }이며 이는 동일합니다(이후에 저장할 # 텍스트까지 및 대부분 포함).

내가 찾고 있는 것의 최종 결과입니다.

Code to keep Above

1291.5.21 = { #some more text to preserve
    owner = XXX
    controller = XXX
    add_core = XXX
    remove_core = XXX
} #some more text to preserve

More code to keep below

한 번의 클릭으로 4개 날짜 또는 8개 날짜 모두에 걸쳐 수행할 수 있는 보너스 포인트입니다. (슈퍼 블록을 형성하므로)

1291.5.21
1291.5.23
1291.5.24
1291.5.26

1444.11.13
1444.11.15
1444.11.16
1444.11.18

답변1

다음과 같은 값이 없는 행의 주석 처리를 제거하는 솔루션은 다음과 같습니다 XXX.

  • Ctrl+H
  • 무엇을 찾다:^#(?=\d{4}\.\d\d?\.\d\d?|}|\h+(?:owner|controller|add_core|remove_core)\h*=\h*(?!XXX)\w{3}$)
  • 다음으로 교체:LEAVE EMPTY
  • 확인하다 성냥갑
  • 확인하다 줄 바꿈
  • 확인하다 정규식
  • 선택 취소 . matches newline
  • Replace all

설명:

^#                          # beginning of line and # sign
(?=                         # positive lookahead
    \d{4}\.\d\d?\.\d\d?         # date
  |                         # OR
    }                           # closing curly brace
  |                         # OR
    \h+                         # 1 or more horizontal spaces
    (?:                         # non capture group
        owner                       # literally
      |                         # OR
        controller                  # literally
      |                         # OR
        add_core                    # literally
      |                         # OR
        remove_core                 # literally
    )                           # end group
    \h*=\h*                     # equal sign wth optional spaces before and after
    (?!XXX)                     # negative lookahead, make sure we haven't XXX after
    \w{3}                       # 3 word characters
    $                           # end of line
)                           # end lookahead

스크린샷(이전):

여기에 이미지 설명을 입력하세요

스크린샷(이후):

여기에 이미지 설명을 입력하세요

관련 정보