Заменить формат даты в Notepad++ с помощью регулярных выражений

Заменить формат даты в Notepad++ с помощью регулярных выражений

У меня есть даты в формате MonthYear, Month-Year(например: May16, Jul-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
галочкой «Регулярное выражение» и снимите галочку «. соответствует новой строке».

Где -?означает, что символ -необязателен.

введите описание изображения здесь

Связанный контент