Vraag : Regelmatige Uitdrukkingen Perl



Hallo,

Ik probeer om een datumgebied met formaat te ontleden

dd/mm/YYYY HH: MM.: SS

soms heeft de datum slechts één cijfer en ooit slechts heeft HH
één cijfer
voorbeeld van input

het 9:09 van 7/03/2001: 18.034449599, BGC, WCOM, C3400

Ik wil elk gebied van de datum bekijken als er slechts cijfer I is
schakel 0 voor het, voorbeeld aaneen als de dag 7 is ik 07 zette,
als het uur 9 is zette ik 09. Ik wil aan elimnate ook de ruimte.

zo voor de input boven de gewenste output

is
07/03/200109: 09: 18.034449599, BGC, WCOM, C3400

:

Ik kan dd isoleren en de ruimte verwijderen maar wanneer ik niet kan
om mm en HH te isoleren

voorbeeld:

#! /usr/bin/perl

#use strikt;

gebruiks waarschuwingen;
mijn $inputFile;
mijn $inputname = „Sample1Date.txt“;
mijn $outputfile;
mijn $outputname = „Sample1Date_output.txt“;
mijn $line;
mijn @lineParts;
mijn @linePartsDay;
mijn @linePartsMonth;
mijn $temp2= "";

open (inputFile, „$inputname“);
#open ($inputFile, „<>openen ($outputfile, „>$outputname“) || de matrijs „kan output geen dossier“ openen;
mijn $temp = "";

terwijl ($line = )

{

       @lineParts = verdeel „\,“, $line;
       mijn $date = $lineParts [0];
       @linePartsDay = verdeel „\/“, $date;
       mijn $day = $linePartsDay [0];
       druk „dag: $day \ n“;

       #@linePartsMonth = verdeel „\ ^ (\ D {2}/\ D {2}/)“, $date;
       @linePartsMonth = verdeel „\ ^ (/)“, $date;

       mijn $month = $linePartsMonth [0];
       druk „maand: $month \ n“;


       #$temp2 = $date;
       #$temp2 =~ s (\ s) +//;

       #$date = $temp2;   # verwijder ruimte in het midden van datum
       druk „datum: $date \ n“;
       mijn $number1 = $lineParts [1];
       mijn $donor = $lineParts [2];
       mijn $recipient = $lineParts [3];
       mijn $routing = $lineParts [4];
       $temp = $date. „,“. $number1. „,“. $donor. „,“. $recipient. „,“. $routing;
       druk $outputfile „$temp“;


}

#close $inputFile;

dichte $outputfile;

Ik krijg:

dag: 7 (o.k.) ik kan dan de lengte van dag bekijken als het slechts 1 cijfer is aaneenschakel 0 voor het.
maand: datum: 7/03/20019: 09: 18
datum: 7/03/20019: 09: 18

Ik weet niet het hoe te om mm te isoleren, zodra ik de maand krijg die ik zou willen om isoleren
yyyy HH MM. en SS en om elk gebied te controleren (zodra ik isolate I heb
weet hoe te concate) het.

Ik probeerde diverse regelmatige uitdrukkingen voor het isoleren van de maand maar onbekwaam…

       #@linePartsMonth = verdeel „\ ^ (\ D {2}/\ D {2}/)“, $date;
       @linePartsMonth = verdeel „\ ^ (/)“, $date;

       mijn $month = $linePartsMonth [0];
       druk „maand: $month \ n“;

Kent u hoe te de isolatie voor MM., YYYY HH de HEREN SS


Antwoord : Regelmatige Uitdrukkingen Perl

$_= het „9:09 van 7/03/2001: 18.034449599, BGC, WCOM, C3400“;
s/ ? \ B (\ D) \ b/0$1/g;
druk;
Andere oplossingen  
 
programming4us programming4us