コメントコードを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 は各ブロックで異なりますが、異なるファイルでは同じになる可能性があります (ただし、文字/数字は 3 つだけです)。少し複雑にするために、理想的には、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

1 回のクリックで 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

スクリーンショット(前):

ここに画像の説明を入力してください

スクリーンショット(後):

ここに画像の説明を入力してください

関連情報