entfernen führende Nullen aus dem Zeitstempel% j% Y% H:% M

7

Mein Zeitstempel ist in der Form

%Vor%

Ich muss die führenden Nullen entfernen, um dieses Formular zu erhalten:

%Vor%

Hier ist der Code, den ich jetzt verwende, der führende Nullen nicht entfernt:

%Vor%     
kilojoules 12.09.2014, 06:20
quelle

6 Antworten

7
%Vor%

Für Situationen wie unten könnte es sein:

%Vor%

Erklärung

Hier ist die Idee, look behind (?<=^| )0+ mit 0 s

zu vergleichen

wenn es entweder am Anfang der Zeichenfolge auftritt (?<=^

oder |

wenn es nach einem Leerzeichen )0+

folgt

und ersetzen Sie die übereinstimmenden 0s by "" im zweiten Teil des Arguments gsub .

In der zweiten Zeichenfolge sind hour und minutes alle 0's . Also würde die Verwendung des ersten code zu folgendem führen:

%Vor%

Hier ist unklar, was das OP als Ergebnis akzeptieren würde. Also, ich dachte, anstatt das ganze 0 s vor dem : zu entfernen, wäre es besser, wenn ein 0 übrig wäre. Also habe ich den multiplen Code 0+ auf nur einen 0 ersetzt und ersetze ihn durch "" .

    
akrun 12.09.2014, 06:38
quelle
8

Der einfachste Weg besteht darin, eine eigene Grenze zu erstellen, die entweder den Beginn der Zeichenkette oder ein vorangestelltes Leerzeichen bestätigt.

%Vor%

Sie könnten dasselbe machen, indem Sie den Ersatz mit einem Trick ausschließen. \K setzt den Startpunkt der gemeldeten Übereinstimmung zurück und alle zuvor verbrauchten Zeichen sind nicht mehr enthalten.

%Vor%

Oder Sie könnten sub verwenden und bis zum zweiten Satz führender Nullen passen.

%Vor%

Und um alle Möglichkeiten abzudecken, wenn Sie wissen, dass Sie jemals ein Format wie 0992006 00:00 haben werden, entfernen Sie einfach den + Quantifizierer von null im regulären Ausdruck, so dass nur die erste führende Null entfernt wird.

    
hwnd 12.09.2014 06:37
quelle
7

Hier ist eine weitere Option mit einem Lookbehind

%Vor%     
David Arenburg 12.09.2014 06:36
quelle
2

Mit sub :

%Vor%     
user3710546 12.09.2014 06:26
quelle
1

Sie können stringr auch ohne regulären Ausdruck verwenden, indem Sie die Teilzeichenfolgen verwenden.

%Vor%     
Rich Scriven 12.09.2014 17:52
quelle
1

Einige Perl-Regexes,

%Vor%     
Avinash Raj 13.09.2014 08:19
quelle

Tags und Links