PureBasic

Forums PureBasic
Nous sommes le Jeu 20/Juin/2013 8:50

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 
Auteur Message
 Sujet du message: Expressions régulières : Des masques tout fait
MessagePosté: Mer 19/Jan/2011 16:25 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 24/Jan/2004 14:54
Messages: 3728
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 :
Code:
"[0-9]{5}"

Extraire une adresse mail :
Code:
"[a-zA-Z0-9\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+"

Extraire un numéro de téléphone :
Code:
"0[1-9]([-. ]?[0-9]{2}){4}"


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Sam 02/Avr/2011 12:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5323
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:
  ; 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,}"

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Expressions régulières : Deformater un string numérique form
MessagePosté: Mar 06/Sep/2011 10:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 1503
Localisation: IDF (Yvelines)
Deformater un string numérique formater

Exemple :
la chaine "10 235.25 €" deviendra "1023525"

Code:
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

_________________
Noob Inside ■ (Windows 7 & 8 - PB 5.11 Full version) ■ Mode politiquement Correct
SQLite Vision : Éditeur de fichiers SQLite


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Mer 16/Nov/2011 11:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5323
Code:
;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

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Ven 25/Mai/2012 22:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 1503
Localisation: IDF (Yvelines)
Numérique avec ou sans une seule decimale.
Code:
*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)

_________________
Noob Inside ■ (Windows 7 & 8 - PB 5.11 Full version) ■ Mode politiquement Correct
SQLite Vision : Éditeur de fichiers SQLite


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Mar 29/Mai/2012 8:09 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 345
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/purebasic%2029.htm#4_reval

Téléchargement direct:
http://bluez.home.xs4all.nl/purebasic/reval.zip

Mesa.


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Mar 29/Mai/2012 9:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5323
Merci pour le lien Mesa, ça peut être bien pratique.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Mar 29/Mai/2012 10:08 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13086
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 :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Vérifier un mot dans une liste
MessagePosté: Jeu 13/Déc/2012 21:50 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 1503
Localisation: IDF (Yvelines)
Code:
;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

_________________
Noob Inside ■ (Windows 7 & 8 - PB 5.11 Full version) ■ Mode politiquement Correct
SQLite Vision : Éditeur de fichiers SQLite


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Jeu 24/Jan/2013 10:52 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 3063
Localisation: Arras, France
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.

_________________
The shooting crew ~> http://www.shootingcrew.com
Bobble Puzzle ~> http://djes.free.fr


Haut
 Profil  
 
 Sujet du message: Re: Expressions régulières : Des masques tout fait
MessagePosté: Jeu 24/Jan/2013 12:20 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13086
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
viewtopic.php?f=21&t=6664&p=65087#p65087

section "Divers" Sujet numero 2 .. ;)

_________________
Image


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye