
У меня есть даты в формате 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
галочкой «Регулярное выражение» и снимите галочку «. соответствует новой строке».
Где -?
означает, что символ -
необязателен.