使用正则表达式替换 Notepad++ 中的日期格式

使用正则表达式替换 Notepad++ 中的日期格式

我有日期如MonthYearMonth-Year(例如:5 月 16 日、7 月 21 日),但我需要它们采用以下dd.mm.yyyy格式。

例如:
Aug20,需要成为01.08.2020
May-19,需要成为01.05.2019
Jul18,需要成为01.07.2018
Nov-17,需要成为01.11.2017

谢谢。

答案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

使用一个正则表达式来执行此操作非常复杂,不值得付出努力(除非有人将其视为挑战)。

您需要为每个月写 12 个替换。例如:

查找内容:Aug-?(\d\d)
替换为:01.08.20\1
勾选“正则表达式”,然后取消勾选“.匹配换行符”。

其中-?表示该字符-是可选的。

在此处输入图片描述

相关内容