Re: Expression régulière

Top Page

Reply to this message
Author: YP
Date:  
To: guilde
Subject: Re: Expression régulière
On 19/05/2012 10:06, Frédéric wrote:
> Bonjour,


Hello,

> Je voudrais savoir s'il est possible, avec une bête expression régulière,
> de formatter une chaîne heure :
>
> 8:12:58 -> _8:12:58 (le _ est un espace)
> 8:2:0 -> _8:02:00
> 12:43:5 -> 12:43:05
>
> Je dois récupèrer la chaîne en utilisant des groupes, et la formatter via
> ces groupes. Je n'ai pas accès aux fonctions de transformations qu'il peut
> exister dans les divers langages.
>
> Pour l'instant, j'ai :
>
>  - récupération : (\d{1,2}):(\d{1,2}):(\d{1,2})
>  - affichage    : $1:$2:$3


Un peu dans la veine de ce que propose Romain, en supposant que tes
dates soient dans un fichier texte "dates.txt" mais pipe avec un flux en
entrée doit faire le job aussi :
awk -F: '{printf("%2d:%02d:%02d\n", $1, $2, $3)}' dates.txt

sinon une regex en Perl devrait faire le boulot, pas testé, sans doute
as-tu possibilité de faire ça en d'autres patois :

's/(\d+):(\d+):(\d+)/sprintf("%2d:%02d:%02d\n", $1, $2, $3)/ge'

HTH,

++

Yves