Page 1 sur 1
Expressions régulières : Des masques tout fait
Publié : mer. 19/janv./2011 16:25
par Chris
Si vous avez des masques que vous voulez partager, postez les ici.
Inutile de mettre toute la fonction. Mettez uniquement la chaine entre guillemets
avec une description courte de ce qu'elle est censée faire, comme ici.
Extraire un code postal :
Extraire une adresse mail :
Extraire un numéro de téléphone :
Re: Expressions régulières : Des masques tout fait
Publié : sam. 02/avr./2011 12:05
par Ar-S
Pour logiquement extraire des liens
- MegaUpload
- Hotfile
- Depositefile
- Gigaup
P.S : pas de commentaires foireux sur le type de fichier à récupérer, là n'est pas le sujet, merci.
Code : Tout sélectionner
; Ar-S / 2010
"ht{2}p:/{2}(www)*(.megaupload.com/\?d=|.gigaup.fr/\?g=|hotfile.com/dl/|depositfiles.com/files/)/*([0-9a-z/]*){17}[a-zA-Z0-9_.\(\)-]{4,}"
Expressions régulières : Deformater un string numérique form
Publié : mar. 06/sept./2011 10:01
par falsam
Deformater un string numérique formater
Exemple :
la chaine "10 235.25 €" deviendra "1023525"
Code : Tout sélectionner
Enumeration
#NumOnly
EndEnumeration
Procedure.s DeformattedString(Buffer.s)
Protected Dim Result.s (0), NbFound.l, x.i
If CreateRegularExpression(#NumOnly,"[0-9]")
NbFound=ExtractRegularExpression(#NumOnly, Buffer, Result())
Buffer=""
For x=0 To NbFound-1
Buffer=Buffer+Result(x)
Next
EndIf
ProcedureReturn Buffer
EndProcedure
;Quelques exemples
Debug DeformattedString("10 235.25 €")
Debug DeformattedString("€ 12 235.00")
Debug DeformattedString("10.125,10 F")
Debug DeformattedString("10/01/11") ; Date
Re: Expressions régulières : Des masques tout fait
Publié : mer. 16/nov./2011 11:51
par Ar-S
Code : Tout sélectionner
;Extracteur de date v2
;utilisant les expressions régulières
; Par Ar-S / Nov 2011 - P.B 4.60
; Extrait date sous forme jj-mm-aaaa (plus un espace) d'après une date dans sous la forme jj/mm/aaaa ou jj/mm/aaaa dans un string
t$ = "nous sommes le 16/11/2011 et on se caille les miches. Hier c'était pareil, le 15.11.2011 à 11h c'était encore givré" ; le string contenant la date
t$ + "la date suivante ne sera pas prise en compte : 17 11 2012 car le séparateur espace n'est pas indiqué"
Global Dim result$(0)
Procedure.s ExtractDate(t$,ARS_separateur$)
; Ar-S
; Extraction de date v2
Final$ = ""
; v2 permetant de trouver une date utilisant les separateurs "." "/" et "-"
expr$ = "([0-9]{2}+[" + ARS_separateur$ + "]){2}[0-9]{4}"
CreateRegularExpression(0,expr$)
NbrTrouve = ExtractRegularExpression(0, t$ , result$()) ;Extrait les résultat dans result()
If NbrTrouve>0
For k = 0 To NbrTrouve-1
LaDate$ = result$(k)
Aremplacer$ = Mid(LaDate$,3,1)
; Ensuite la date est convertie ci besoin au format jj-mm-aaaa
LaDate$ = ReplaceString(LaDate$,Aremplacer$,"-")
If NbrTrouve = 1
Final$ = LaDate$
Else
Final$ + " " + LaDate$
EndIf
Next
; On supprime le 1er espace de gauche s'il y en a
Final$ = LTrim(Final$)
FreeRegularExpression(0)
ProcedureReturn Final$
Else
FreeRegularExpression(0)
ProcedureReturn "Pas de date !"
EndIf
EndProcedure
Debug "test 1"
Debug ExtractDate(t$,"/.-") ; ici 3 séparateurs de recherchés
Debug "test 2"
Debug ExtractDate(t$," ") ; ici seulement le séparateur "espace"
End
Re: Expressions régulières : Des masques tout fait
Publié : ven. 25/mai/2012 22:11
par falsam
Numérique avec ou sans une seule decimale.
Code : Tout sélectionner
*RegMatch = CreateRegularExpression(#PB_Any ,"^[-]?\d*[.,]?\d*$")
Debug MatchRegularExpression (*RegMatch, "100.10")
Debug MatchRegularExpression (*RegMatch, "a100.10")
Debug MatchRegularExpression (*RegMatch, "100,10")
Debug MatchRegularExpression (*RegMatch, "-100.10")
Debug MatchRegularExpression (*RegMatch, "-100")
FreeRegularExpression (*RegMatch)
Re: Expressions régulières : Des masques tout fait
Publié : mar. 29/mai/2012 8:09
par Mesa
Une petite application nommée "reval" a été développée en purebasic pour tester vos expressions régulières.
Bien pratique.
C'est quelque chose qui pourrait même faire partie de l’éditeur de PB àmon avis.
http://bluez.home.xs4all.nl/purebasic/p ... tm#4_reval
Téléchargement direct:
http://bluez.home.xs4all.nl/purebasic/reval.zip
Mesa.
Re: Expressions régulières : Des masques tout fait
Publié : mar. 29/mai/2012 9:29
par Ar-S
Merci pour le lien Mesa, ça peut être bien pratique.
Re: Expressions régulières : Des masques tout fait
Publié : mar. 29/mai/2012 10:08
par Backup
Mesa a écrit :C'est quelque chose qui pourrait même faire partie de l’éditeur de PB àmon avis.
je sais plus pour l'editeur Officiel , mais pour ce qui concerne , Japbe , ou EPB

on peut avoir acces a un utilitaire
par le menu , donc, utilisable a volonté pendant le codage

Vérifier un mot dans une liste
Publié : jeu. 13/déc./2012 21:50
par falsam
Code : Tout sélectionner
;Vérifier un mot dans une liste
Global *RegMatch = CreateRegularExpression(#PB_Any ,"^(?i)(tomate|courgette|pomme de terre){1}")
Procedure EstUnlegume(Valeur.s)
ProcedureReturn MatchRegularExpression (*RegMatch, Valeur)
EndProcedure
Debug EstUnlegume("courgette") ;Retournera #True
Debug EstUnlegume("pomme de terre") ;Retournera #True
Debug EstUnlegume("poire") ;Retournera #False
Debug EstUnlegume("Courgette") ;Retournera #True
Debug EstUnlegume("pomme de Terre") ;Retournera #True
Re: Expressions régulières : Des masques tout fait
Publié : jeu. 24/janv./2013 10:52
par djes
Luis a fait un bon topic là-dessus, ici :
http://www.purebasic.fr/english/viewtop ... 12&t=47361
D'autre part, didelphodon a créé un programme pour tester les expressions régulières, Rexman:
http://www.purebasic.fr/english/viewtop ... 27&t=37212
Je pense que ce serait une bonne idée de rendre ce sujet permanent.
Re: Expressions régulières : Des masques tout fait
Publié : jeu. 24/janv./2013 12:20
par Backup
djes a écrit :Je pense que ce serait une bonne idée de rendre ce sujet permanent.
indirectement fait , je viens d'ajouter ce Topic dans le sommaire des Tutos
http://www.purebasic.fr/french/viewtopi ... 087#p65087
section "Divers" Sujet numero 2 ..
