Question : Perl d'expressions régulières



Bonjour,

J'essaye d'analyser un champ de date avec le format

dd/mm/YYYY HH : Millimètre : Solides solubles

parfois la date a seulement un chiffre et autrefois le HH a seulement
un chiffre
exemple d'entrée

7/03/2001 9h09 : 18.034449599, BGC, WCOM, C3400

Je veux regarder chaque champ de la date s'il y a seulement le chiffre I
enchaîner un 0 devant lui, exemple si le jour est 7 que je mets 07,
si l'heure est 9 je mets 09. Je veux également à l'elimnate l'espace.

ainsi pour l'entrée au-dessus du rendement désiré

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

:

Je peux isoler la densité double et enlever l'espace mais quand je ne peux pas
pour isoler le millimètre et le HH

exemple :

# ! /usr/bin/perl

#use strict ;

employer les avertissements ;
mon $inputFile ;
mon $inputname = « Sample1Date.txt » ;
mon $outputfile ;
mon $outputname = « Sample1Date_output.txt » ;
mon $line ;
mes @lineParts ;
mon @linePartsDay ;
mon @linePartsMonth ;
mon "" de $temp2= ;

s'ouvrir (inputFile, « $inputname ») ;
#open ($inputFile, « <>s'ouvrent ($outputfile, « >$outputname ») || mourir « ne peut pas ouvrir le dossier de rendement » ;
mon $temp = "" ;

tandis que ($line = )

{

       les @lineParts = ont dédoublé « \, », $line ;
       mon $date = $lineParts [0] ;
       @linePartsDay = dédoubler « \/ », $date ;
       mon $day = $linePartsDay [0] ;
       jour d'impression « : $day \ n » ;

       le #@linePartsMonth = a dédoublé « \ ^ (\ d {2}/\ d {2}/) », $date ;
       le @linePartsMonth = a dédoublé « \ ^ (/) », $date ;

       mon $month = $linePartsMonth [0] ;
       mois d'impression « : $month \ n » ;


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

       #$date = $temp2 ;   # enlever les espaces au milieu de la date
       date d'impression « : $date \ n » ;
       mon $number1 = $lineParts [1] ;
       mon $donor = $lineParts [2] ;
       mon $recipient = $lineParts [3] ;
       mon $routing = $lineParts [4] ;
       $temp = $date. « , ». $number1. « , ». $donor. « , ». $recipient. « , ». $routing ;
       copie $outputfile « $temp » ;


}

#close $inputFile ;

$outputfile étroit ;

J'obtiens :

jour : 7 je (BIEN) peux alors regarder la durée de jour si c'est seulement 1 chiffre enchaînent un 0 devant lui.
mois : date : 7/03/20019 : 9h18
date : 7/03/20019 : 9h18

Je ne sais pas isoler le millimètre, une fois que j'ai le mois où je voudrais isoler
le yyyy le HH le millimètre et les solides solubles et pour vérifier chaque champ (une fois que j'ai l'isolat I
savoir au concate).

J'ai essayé de divers expressions régulières pour isoler le mois mais incapable…

       le #@linePartsMonth = a dédoublé « \ ^ (\ d {2}/\ d {2}/) », $date ;
       le @linePartsMonth = a dédoublé « \ ^ (/) », $date ;

       mon $month = $linePartsMonth [0] ;
       mois d'impression « : $month \ n » ;

Vous savez à l'isolement le millimètre, YYYY HH LE millimètre solides solubles


Réponse : Perl d'expressions régulières

$_= « 7/03/2001 9h09 : 18.034449599, BGC, WCOM, C3400 » ;
s/ ? \ b (\ d) \ b/0$1/g ;
copie ;
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us