IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ PureBasicConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 68, dernière mise à jour : 3 janvier 2013  Ajouter une question

 

Bienvenue dans la F.A.Q. PureBasic !

Celle-ci va tenter de répondre aux questions les plus fréquemment posées sur le langage PureBasic et tous ses outils de programmation. Si elle n'a pas pour vocation de répondre à toutes les interrogations possibles, elle reste une bonne base de connaissances sur le PureBasic, et ne demande qu'à être enrichie par vos expériences personnelles.

Bien entendu, malgré toute l'attention qui a pu être portée à cette F.A.Q., des erreurs ont toujours pu s'y glisser. Prenez donc toutes les précautions qui s'imposent avant d'essayer un exemple.

Nous vous souhaitons une bonne lecture ! Et n'oubliez pas qu'en cas de problème, vous pourrez toujours poser votre question sur le forum PureBasic !

L'équipe PureBasic de Developpez.

SommaireExpressions régulières (2)
précédent sommaire suivant
 

CreateRegularExpression() définit une expression régulière.
ExtractRegularExpression() Extrait dans un tableau tous les emails valides d'une chaîne de caractères et renvoie le nombre d'emails extraits.
ReplaceRegularExpression() Remplace tous les emails valides d'une chaîne de caractères par une autre chaîne de caractères, dans cet exemple par 'EMAIL'.

Code purebasic : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
;PureBasic 4.20 
If CreateRegularExpression(0, "[a-zA-Z0-9\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+") 
   Dim resultat$(0) 
   Debug "Extraire les adresses email d'un texte :" 
   MaChaine.s = "un peu de texte |erix14@purebasic.fr pour tester (nico@developpez.com) encore du bla bla .'denis@purebasic.fr'. bla bla La@fin" 
   Debug MaChaine 
   a = ExtractRegularExpression(0, MaChaine, resultat$()) 
   a$ = ReplaceRegularExpression(0, MaChaine, "EMAIL") 
   For k=0 To a-1 
      Debug resultat$(k) 
   Next 
   Debug Str(a)+" adresses ont été trouvées." 
   Debug a$ 
Else 
   Debug RegularExpressionError() 
EndIf

Mis à jour le 31 mars 2008

PureBasic est doté d'une bibliothèque RegularExpression qui utilise PCRE.
Les fonctions disponibles permettent de répondre simplement à un grand nombre de besoins, si toutefois ce n'est pas suffisant, il est toujours possible d'importer des fonctions, voici un code qui vous montre comment procéder.
Vous n'avez rien à télécharger, la bibliothèque est présente dans PureBasic.

Code purebasic : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
;hallodri 26 juillet 2008 
ImportC ""  
  pcre_exec(*pcre,*extra,subject.s,length,startoffset,options,*ovector,ovecsize) 
  pcre_get_substring(subject.s,*ovector,stringcount,stringnumber,stringptr.l) 
  pcre_free_substring(stringptr.l) 
EndImport 
 
pattern.s   = "a(\d+)c" 
subject.s   = "1a123c2" 
len         = Len(subject) 
SubString.l = 0 
 
regex = CreateRegularExpression(0, pattern) 
 
If regex 
 
  Dim ov(30) 
  
  While pcre_exec(PeekL(regex),0,subject,len,ov(1),0,@ov(),30) > 0 
    
    Debug PeekS(@subject + ov(0),ov(1)-ov(0)) 
    
    pcre_get_substring(subject,@ov(),2,1,@SubString) 
    
    Debug PeekS(SubString) 
    
    pcre_free_substring(@SubString) 
    
  Wend 
  
EndIf
Code purebasic : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
;fizban 27 juillet 2008 
ImportC ""  
  pcre_exec(*pcre,*extra,subject.s,length,startoffset,options,*ovector,ovecsize) 
EndImport 
 
pattern.s   = "a(\d+)c" 
subject.s   = "1a123c2" 
len         = Len(subject) 
SubString.l = 0 
 
regex = CreateRegularExpression(0, pattern) 
 
If regex 
 
  Dim ov(30) 
  
  While pcre_exec(PeekL(regex),0,subject,len,ov(1),0,@ov(),30) > 0 
    
    Debug PeekS(@subject + ov(0),ov(1)-ov(0)) 
    
    Debug Mid(subject, ov(2)+1,ov(3) - ov(2)) 
    
  Wend 
  
EndIf

Mis à jour le 26 juillet 2008

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.