Expressions régulières - Patterns pour RegExp

G

Guest

Guest
Re : Expressions régulières - Patterns pour RegExp

Bonjour le fil,

@David, tout pareil que Tibo. bravo!

A++
 

Staple1600

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonjour le fil

David84
icon_bravo.gif: pour cette dernière version.
icon_bravo.gif: pour cette promenade hautement et superbement créative sur le vaste chemin du Grand Pattern.


Bon week-end à tous.​

PS: Ne sommes-nous pas proches du bout du chemin pour ce qui concerne le string temporel ;) ?
 

david84

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re
@Jean-Noël : depuis quand le 9 Pluviose AnII correspond elle à une date du calendrier Grégorien :p ?
Attends, tu veux dire qu'il va falloir se faire une nouvelle fonction pour le calendrier Républicain :rolleyes: ?

@Jean-Marie :
PS: Ne sommes-nous pas proches du bout du chemin pour ce qui concerne le string temporel ?
J'attends un peu le retour des tests et si je vois que c'est OK, je finaliserai la fonction avec un beau nom (j'ai pensé à ExtraireDate) et tout et tout:eek::eek::eek:.
A+:cool:
 

JNP

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re :),
@Jean-Noël : depuis quand le 9 Pluviose AnII correspond elle à une date du calendrier Grégorien :p ?
Attends, tu veux dire qu'il va falloir se faire une nouvelle fonction pour le calendrier Républicain :rolleyes: ?
Ben quitte à traiter des dates, autant aller jusqu'au bout, non :rolleyes: ? Et c'est un beau défi dans la continuité :p...
D'ailleurs, je ne ferai que te citer :

En effet, à mon sens, le test le plus pertinent est à faire sur des chaînes de caractères, par exemple des données de généalogie retranscrites dans Excel où le but est d'extraire les dates de naissance et de décès de personnes. Sur ce type d'exemple, c'est une chaîne de caractères répondant au pattern qui est recherchée et non une date.
Mais bon, comme en ce moment je suis plus spectateur qu'acteur sur ce fil, j'ai le droit de tout suggérer, non :rolleyes: ?
Ce serait dommage d'arrêter là un si bel effort, quand vous êtes en train de finaliser un superbe projet, sachant qu'il ne restera plus ensuite qu'à en faire une application téléchargeable pour nos amis généalogistes ;)...
Bonne soirée :cool:
 

Victor21

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonsoir à tous !

Superbe travail ! Les explications sont claires. Ce fil m'a fait découvrir un pan de VBA que je ne connaissais pas du tout, et l'exemple choisi se prête particulièrement bien à la démonstration de la puissance des pattern.
Merci en particulier à vous trois d'avoir fait partager vos connaissances :)

Après le gâteau, j'attends avec impatience la cerise : la traduction de la signature de Roger2327 :p
Mardi 17 Décervelage 139 (Saint Mandrin, poète et philosophe - fête Suprême Quarte)

C'est grâce à (à cause ?) des fils comme celui-ci qu'on s'attache tellement à XLD !
 

david84

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re
@Jean-Noël :
D'ailleurs, je ne ferai que te citer :

Envoyé par david84
En effet, à mon sens, le test le plus pertinent est à faire sur des chaînes de caractères, par exemple des données de généalogie retranscrites dans Excel où le but est d'extraire les dates de naissance et de décès de personnes. Sur ce type d'exemple, c'est une chaîne de caractères répondant au pattern qui est recherchée et non une date.
Mais bon, comme en ce moment je suis plus spectateur qu'acteur sur ce fil, j'ai le droit de tout suggérer, non ?
Ce serait dommage d'arrêter là un si bel effort, quand vous êtes en train de finaliser un superbe projet, sachant qu'il ne restera plus ensuite qu'à en faire une application téléchargeable pour nos amis généalogistes ...

Bon, pourquoi pas sur le principe...
Mais tu sais bien que le problème n'est pas tant la constitution d'un pattern traitant du calendrier Républicain que de la transcription de cette date en date du calendrier Grégorien...et là ce n'est plus du RegExp dont nous aurons besoin.

Il va falloir trouver ou mettre au point un algorithme permettant d'effectuer ce calcul.
Quelqu'un aurait cela dans ses archives ?

Maintenant, si vous avez des idées sur la manière de traiter ce sujet, c'est le moment de les exprimer:eek::eek::eek:

@Victor21:
Après le gâteau, j'attends avec impatience la cerise : la traduction de la signature de Roger2327
Mardi 17 Décervelage 139 (Saint Mandrin, poète et philosophe - fête Suprême Quarte)

Je crois que je viens d'avaler le noyau:eek::eek::eek:

A+
 

JNP

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re :),
Après le gâteau, j'attends avec impatience la cerise : la traduction de la signature de Roger2327 :p
Attaquons nous déjà au calendrier républiquain avant le calendrier pataphysicien... Je doute que des documents officiels de généalogie utilisent ce calendrier, mais bon, la conversion ne devrait pas être trop difficile en se basant sur la définition ICI :p

Bon, pourquoi pas sur le principe...
Mais tu sais bien que le problème n'est pas tant la constitution d'un pattern traitant du calendrier Républicain que de la transcription de cette date en date du calendrier Grégorien...et là ce n'est plus du RegExp dont nous aurons besoin.

Il va falloir trouver ou mettre au point un algorithme permettant d'effectuer ce calcul.
Quelqu'un aurait cela dans ses archives ?
C'est bien du Pattern pour reconnaître et extraire ce type de date, afin de l'envoyer vers le convertisseur et de ramener une date grégorienne, non :rolleyes: ?
A priori, il y a surtout des convertisseurs sur le net, mais j'ai trouvé du Basic OO, à traduire et à tester, ainsi qu'une table de conversion pour vérifier la validité des résultats :p
A + :cool:
 

david84

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re Jean-Noël,
C'est bien du Pattern pour reconnaître et extraire ce type de date, afin de l'envoyer vers le convertisseur et de ramener une date grégorienne, non ?
Exact, d'où ma remarque
Mais tu sais bien que le problème n'est pas tant la constitution d'un pattern traitant du calendrier Républicain que de la transcription de cette date en date du calendrier Grégorien...

Concernant l’algorithme de traitement, je regarderai de mon côté si je peux trouver d'exploitable...en attendant peut-être la contribution d'un membre du forum:rolleyes:.
Sinon, et bien il faudra s'y coller...ou s'en tenir là.
A+
 

Staple1600

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonjour le fil, Salutations régulières tous les aficionados du Pattern ;)


Re :),Attaquons nous déjà au calendrier républicain avant le calendrier pataphysicien... Je doute que des documents officiels de généalogie utilisent ce calendrier, mais bon, la conversion ne devrait pas être trop difficile en se basant sur la définition ICI :p C'est bien du Pattern pour reconnaître et extraire ce type de date, afin de l'envoyer vers le convertisseur et de ramener une date grégorienne, non :rolleyes: ? A priori, il y a surtout des convertisseurs sur le net, mais j'ai trouvé du Basic OO, à traduire et à tester, ainsi qu'une table de conversion pour vérifier la validité des résultats :p A + :cool:

Madre mios !

Si on parle calendrier, quid de celui des Mayas ?

Y connaissait pas à l'époque les expressions régulières, mais bon à de la marge d'ici le 21 décembre 2012. ;)
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonjour à tous


Re Jean-Noël,

Exact, d'où ma remarque

Concernant l’algorithme de traitement, je regarderai de mon côté si je peux trouver d'exploitable...en attendant peut-être la contribution d'un membre du forum:rolleyes:.
Sinon, et bien il faudra s'y coller...ou s'en tenir là.
A+

Un essai, version βῆτα à tester...​


ROGER2327
#5383


Vendredi 20 Décervelage 139 (Saint Outlaw, aristocrate - fête Suprême Quarte)
27 Nivôse An CCXX, 1,2865h - plomb
2012-W03-2T03:05:16Z
 

Pièces jointes

  • DGREG4.xlsm
    43.2 KB · Affichages: 116

david84

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonjour Roger et bienvenu dans cette discussion,
J'ai commencé à tester votre proposition qui est très poussée puisque qu'elle retranscrit n'importe qu'elle date du calendrier Républicain en calendrier Grégorien.
Je dois dire qu'au cours des quelques recherches que j'ai menées, je n'ai pas vu de code aussi poussé puisque seules les dates comprises entre l'An I et l'An XIV étaient traitées jusqu'à présent.
C'est donc plus qu'il ne nous en faut pour l'extraction et la transcription de ces dates mais abondance de bien ne nuit pas !

Ci-joint un 1er retour de tests que j'ai effectués :
pour l'instant il me semble que seul le cas des Sanculotides doit encore être peaufiné.
En effet et par exemple :
- 6 sanculotide An 4 me ramène 22/9/1796 alors que cet An n'est pas bissextile
- 7 sanculotide An 4 me ramène 23/9/1796 alors que ce jour complémentaire n'existe pas.
- idem pour 8 sanculotide An 4 qui ramène 24/9/1796 (et ainsi de suite pour les suivants)

Personnellement, cela ne gênerait en rien le traitement de ces données car je peux très bien s'il le faut filtrer ces dates au niveau du motif d'expression rationnelle afin de ramener "Date non valide", mais c'était simplement pour vous le signaler.

Je continuerai de tester plus tard, puis je me pencherai sur l'élaboration du motif afin de tester les résultats sur une extraction de chaîne de caractères (ça c'est la partie RegExp qui s'en charge).

Un grand merci pour votre contribution de haute volée et à bientôt.
A+

Edit : je note aussi que les dates non valides telles que 31 ou 32 Vendémiaire ou Frimaire ramène une date dans le calendrier Grégorien
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Bonjour à tous



(...)
Ci-joint un 1er retour de tests que j'ai effectués :
pour l'instant il me semble que seul le cas des Sanculotides doit encore être peaufiné.
En effet et par exemple :
- 6 sanculotide An 4 me ramène 22/9/1796 alors que cet An n'est pas bissextile
- 7 sanculotide An 4 me ramène 23/9/1796 alors que ce jour complémentaire n'existe pas.
- idem pour 8 sanculotide An 4 qui ramène 24/9/1796 (et ainsi de suite pour les suivants)
(...)
Edit : je note aussi que les dates non valides telles que 31 ou 32 Vendémiaire ou Frimaire ramène une date dans le calendrier Grégorien

C'est bien pour cela qu'il ne s'agit que d'une version Bêta !

Le problème que vous soulevez peut se résoudre ainsi :
VB:
Function DGrg(r$)
'=SOMME(ENT(AnR(A1)/{1;4;100;400})*{365;1;-1;1})+30*MoR(A1)+JoR(A1)-39575
'Nécessite la fonction DateRep (module DatesREP)
Dim x#, s
    s = AMJR(r)
    x = 365 * s(2) + Int(s(2) / 4) - Int(s(2) / 100) + Int(s(2) / 400) + 30 * s(1) + s(0) - D0 + 146066
    DGrg = Day(x) & "/" & Month(x) & "/" & Year(x) - 400
    If AMJR(FDr(DateRep(CDate(DGrg))))(0) <> s(0) Then DGrg = "?" 'Contrôle de validité
End Function

Faites-moi part de toute autre correction que vous souhaitez !​


Bon courage.
ROGER2327
#5384


Vendredi 20 Décervelage 139 (Saint Outlaw, aristocrate - fête Suprême Quarte)
27 Nivôse An CCXX, 4,7249h - plomb
2012-W03-2T11:20:23Z
 

david84

XLDnaute Barbatruc
Re : Expressions régulières - Patterns pour RegExp

Re Roger
Faites-moi part de toute autre correction que vous souhaitez !
J'ai à nouveau testé de mon côté et je ne trouve rien à redire à votre dernière proposition.
Cela me semble tout simplement parfait !
Si cependant, d'autres retouches s'avéraient nécessaires, je ne manquerai pas de vous le faire savoir.

Je vais maintenant m'atteler à la rédaction du motif dès que j'en aurai le temps afin de permettre de capturer toute chaîne de caractère s'apparentant à une date de type Républicain (xxxxxxxxxxxx9xPluviôsexxxAnxxx2), de l'extraire (9 Pluviôse An 2) afin de la soumettre au traitement de votre fonction.

A+
 

Statistiques des forums

Discussions
315 091
Messages
2 116 110
Membres
112 662
dernier inscrit
lou75