Code: Alles auswählen.
REPLACE `0000` IN feld+8(4) WITH `----`.
REPLACE `00` IN feld+10(2) WITH `--`.
Code: Alles auswählen.
REPLACE REGEX '(20\d\d[012]\d[0123]\d)([012]\d[012345]\d)' with '$1--'
Code: Alles auswählen.
REPLACE REGEX '(\d{8})(\d{4})' with '$1--'
OMG - eine meiner schlechtesten Antworten seit langem. Aufgabe nicht vollständig gelesen, verstanden schon gar nicht und dann eine Antwort gepostet, die nicht mal das macht was ich verstanden habe.
Code: Alles auswählen.
replace regex '(00(?=00\>)|00\>)(?!(:|\sU))' in ... with '--'.
Mit den aktuellen ABAP-Mitteln wohl nicht, da eigentlich für eine halbwegs saubere Lösung ein "lookbehind" Operator existieren müsste, dieser aber für ABAP (noch) nicht implementiert ist sondern nur der "lookahead" operator. Und durch das fehlende "lookbehind" muss man für ein sinnvolles regex welches das Datum erkennt eben mit subgroups arbeiten und da überschneiden sich die subgroups for "YYYYMMDDhh00" und "YYYYMMDD0000", so dass nur eine und nicht beide Ersetzungen vorgenommen werden können.
Was geht denn da nicht?
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
MarkusW