用notepad++批次替換註解程式碼

用notepad++批次替換註解程式碼

記事本++

我正在尋找一種對文字區塊進行大規模評論(以及撤消它的程式碼)的方法。忽略同一文件的其他部分;但同時尊重每個區塊的一些差異。

範例區塊已註解掉,

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 可能相同(儘管只有三個字母/數字);對於一點額外的複雜性,理想情況下,恰好是 XXX 的區塊將被忽略(並保留註釋)。

區塊限制的唯一實際指標是 date(s) = { 和結束 } ,它們是相同的(直到並主要包括要保存的 # 文字)

我正在尋找什麼的最終結果。

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

截圖(之前):

在此輸入影像描述

截圖(之後):

在此輸入影像描述

相關內容