
Ich habe Daten als MonthYear
( Month-Year
z. B. 16. Mai, 21. Juli), aber sie müssen im richtigen dd.mm.yyyy
Format sein.
Zum Beispiel:
Aug20
, muss werden 01.08.2020
May-19
, muss werden 01.05.2019
Jul18
, muss werden 01.07.2018
Nov-17
, muss werden01.11.2017
Danke schön.
Antwort1
Wenn Sie es wirklich in einem einzigen Austausch tun möchten.
Sie müssen bedingte Ersetzungen verwenden, aber es ist unlesbar und nicht wartbar!
- Ctrl+H
- Finde was:
(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-?(\d\d)
- Ersetzen mit:
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
- TICK Groß-/Kleinschreibung beachten
- TICK Umwickeln
- WÄHLEN Regulären Ausdruck
- Häkchen entfernen
. matches newline
- Replace all
Erläuterung:
(?: # 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
Ersatz:
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
Screenshot (vorher):
Screenshot (nachher):
Antwort2
Dies mit einem einzigen regulären Ausdruck zu tun, ist furchtbar komplex und lohnt den Aufwand nicht (es sei denn, man betrachtet es als Herausforderung).
Sie müssten für jeden Monat 12 Ersatzformulare ausfüllen. Beispiel:
Suchen nach: Aug-?(\d\d)
Ersetzen durch: 01.08.20\1
Aktivieren Sie „Regulärer Ausdruck“ und deaktivieren Sie „. entspricht Zeilenumbruch“.
Wobei -?
bedeutet, dass das Zeichen -
optional ist.