正規表現を使用してNotepad++の日付形式を置き換える

正規表現を使用してNotepad++の日付形式を置き換える

MonthYear日付は(例:May16、Jul-21)ですMonth-Yearが、形式にする必要がありますdd.mm.yyyy

たとえば
Aug20、 は になる必要があり01.08.2020
May-19、 は になる必要があり01.05.2019
Jul18、 は になる必要がある01.07.2018
Nov-17、 は になる必要がある01.11.2017

ありがとう。

答え1

本当に1回の交換で済ませたいなら

条件付き置換を使用する必要がありますが、これは読みにくく、保守も不可能です。


  • Ctrl+H
  • 検索対象:(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-?(\d\d)
  • と置換する:01(?1.01.)(?2.02.)(?3.03.)(?4.04.)(?5.05.)(?6.06.)(?7.07.)(?8.08.)(?9.09.)(?10.10.)(?11.11.)(?12.12)20$13
  • ティック マッチケース
  • ティック 包み込む
  • 選択する 正規表現
  • チェックを外す . matches newline
  • Replace all

説明:

(?:             # non capture group
(Jan)           # group 1, Jan
|               # OR
(Feb)           # group 2, Feb
|               # OR
(Mar)           etc.    
|
(Dec)           # group 12 Dec
)               # end group
-?              # optional hyphen
(\d\d)          # group 13, 2 digits

交換:

01              
(?1.01.)        # if group 1 exists, print .01.
(?2.02.)        # if group 2 exists, print .02.
etc.
(?12.12)        # if group 12 exists, print .12.
20              # 20
$13             # content of group 13, the 2 digit year

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

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

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

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

答え2

1 つの正規表現でこれを行うのは非常に複雑であり、労力に見合うものではありません (挑戦として取り組む場合を除きます)。

各月ごとに 12 個の置換を記述する必要があります。例:

検索対象:Aug-?(\d\d)
置換: 01.08.20\1
「正規表現」にチェックを入れ、「. 改行に一致」のチェックを外します。

ここで、-?文字は-オプションであることを意味します。

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

関連情報