Expression régulière

Partagez votre expérience de PureBasic avec les autres utilisateurs.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Expression régulière

Message par comtois »

Rien de transcendant dans ce code c'est juste pour indiquer des liens qui vont bien, et l'utilisation des Classes de caractères POSIX (par exemple [:digit:]).

Code : Tout sélectionner

;First start : http://en.wikipedia.org/wiki/Regular_expression
;PB utilise http://www.pcre.org/


;Pattern$="[abc]" ; a, b or c
;Pattern$="[[:digit:]]" ; Chiffre
Pattern$="[c].[a]" ;  c.a (. est un a joker)

If CreateRegularExpression(0, Pattern$)

  Dim resultat$(0)
   
  a = ExtractRegularExpression(0, "abc 6 cqab cra", resultat$())
 
  For k=0 To a-1
    MessageRequester(Str(k+1) + " / " + Str(a), "Pattern = " + Pattern$ + #LFCR$ + "Résultat = " + Resultat$(k))
  Next

Else
  MessageRequester("Erreur", RegularExpressionError())
EndIf
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Dis voir, j'en profite que tu mette un code avec cette fonction, pour te demander si c'est normal que l'aide n'en parle pas ???

Ou bien j'ai encore merdé quelque part :roll:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Oui c'est normal , c'est une beta, l'aide n'est pas à jour.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

D'accord, je ne savais pas que l'aide se mettait à jour qu'a la version finale :roll:
D'ailleurs on se demande ce que je sais :oops:
J'ai réécrasé le CHM trois fois en croyant que l'updater ne l'avais pas fait :lol: :lol:
Hi hi, quelle burne ce KCC, mes amis quelle burne :lol:

Il faut dire que c'est la premiere fois que je me lance dans le BETA.
Et pourtant c'est vraiment une version qui me va bien comme nom :D

Dab, quand tout le monde avait la 4.10, j'etais encore en 4.00 :oops:
Donc je progresse, je progresse ...

Mais alors comment fait tu pour connaitre la syntaxe, juste avec les exemples donnés avec l'update ???
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

les exemples et le fichier readme.txt :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

SUPER!!!
On a les expressions régulières!!! :D



Mais au fait.... C'est quoi, les expressions régulières? :?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

SUPER!!!
On a les expressions régulières!!!
Mais au fait.... C'est quoi, les expressions régulières?

Alors la CHRIS tu m'a fait beaucoup rire :lol: :lol:

Mais tu as raison, j'osais pas demander :oops:
Je croyais que tout le monde le savait sauf moi :lol:
C'est pour ça, j'allais essayer de comprendre comme un benet tout seul dans mon coin :?
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

C'est super pratique pour extraire du texte, pour parser... expliquer serait trop long, mais en regardant les exemples, tu comprendras vite !
PB deviens vraiment de plus en plus complet !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

ATHOW a écrit :C'est super pratique pour extraire du texte, pour parser... expliquer serait trop long, mais en regardant les exemples, tu comprendras vite !
Ben me v'la bien renseigné, avec ça! :(
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

je ne pourrai rien t'apprendre de plus que l'article sur wikipédia, c'est là que j'ai pris connaissance des expressions régulières.

Extrait
Initialement créées pour décrire des langages formels, les expressions rationnelles sont naturellement utilisées dans l'interprétation des langages informatiques ; compilateurs et interprètes sont ainsi basés dessus.

La puissance des expressions rationnelles pour la simple manipulation du texte les rend incontournables dans les éditeurs de texte, notamment ceux en mode texte ne disposant pas d'environnement graphique. Pour cette même raison, un grand nombres d'utilitaires Unix savent utiliser nativement les expressions rationnelles. Parmi eux, les shells UNIX (bash, ksh, csh, sh, etc.) utilisent ce genre d’expressions dans leurs recherches de fichiers. D'autres utilitaires (grep, sed), à la manière des éditeurs de texte, utilisent ces expressions pour parcourir de façon automatique un document à la recherche de morceaux de texte compatibles avec le motif de recherche, et éventuellement effectuer un ajout, une substitution ou une suppression.

Les expressions rationnelles ont vu un nouveau champs d'application avec le développement d'Internet, et la diffusion de code malveillant ou de messages pourriels. Des filtres et des robots utilisant ces expressions sont utilisés pour détecter les éléments potentiellement nuisibles.
Comme je découvre aussi je ne vais pas te faire un cours magistral, je commence tout juste à faire joujou avec.

Très pratique pour remplacer des morceaux dans une chaine en utilisant des jockers. les possibilités sont vastes, ça va prendre du temps pour les explorer.

Code : Tout sélectionner

Pattern$="p.s"

Texte$="pas pis pot"

If CreateRegularExpression(0, Pattern$)
  N$=ReplaceRegularExpression(0, Texte$, "oui")
  MessageRequester("","Pattern = " + Pattern$ + #LFCR$ + "Texte initial =" + Texte$ + #LFCR$ + "Texte après application du filtre = " + N$,0)
Else
  MessageRequester("Error", RegularExpressionError())
EndIf
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

pour filtrer des fichiers, des données, ça doit être cool , mais boudiou que c'est pas simple la syntaxe !!

Je commence par des trucs simples, je compliquerai à l'occasion.

A étudier

Code : Tout sélectionner

;Motif$=".txt$" ; tout ce qui se termine par txt
;Motif$="^fichier" ; Tout ce qui commence par fichier
Motif$="\d" ;  tout caractère décimal 

Dim T$(10)
T$(0)="fichierpfscool.txt"
T$(1)="super fichier pcs "
T$(2)="autre 145 fichier.txt"
T$(3)="txtimachin chose.doc"


If CreateRegularExpression(0, Motif$)
  For i=0 To 3
    If MatchRegularExpression(0,T$(i))
      Debug t$(i)
    EndIf
  Next i

Else
  MessageRequester("Error", RegularExpressionError())
EndIf
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ouiai bah je commence à comprendre un peu :(
En fait c'est un genre de findstring ....

Pour l'instant je ne vois pas l'interet, mais au fur et à mesure peut etre que je comprendrais.
Si FRED l'a inclus c'est que ça doit etre important dans le monde de l'informatique :roll:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

en principe cela doit correspondre aux fameux "Jocker" utiliser dans les recherches sur les fichiers, ou un mot dans un text

du style

"abreuv???" pour rechercher tout les mots ou fichiers, commençant par "abreuv" et ayant 3 caractères autre possible ,comme "abreuvoir"

ou bien "abreuv*" l'etoile remplaçant ici tout caractères possible;

cela renverrai "abreuvoir","abreuver","abreuvé","abreuvée"

bien sur dans une recherche de fichier le fait de mettre

ar* devrai renvoyer tout les fichiers commençant par "ar"

style "arbre" ,"artiste" etc ...

Le falcon 030 proposait ce type de recherche de fichiers dans les disques dur
bien plus rapide que Windows !!
c'est en partie ce qui me fait dire que le system d'exploitation du Falcon030, etait bien plus en avance, que Windows.. meme XP !! :)

bien sur ce type de recherche existe sur Google
ce qui permet d'ailleurs de tomber sur des fichiers confidentiel

parcequ'il est facile de rechercher des .doc, .txt, ou bien Mot de pass



allez je vous dit meme comment :lol:

dans Google vous tappez
Filetype:sql
pour que ça vous renvoi tout les fichiers Sql que google a repertorié !!

si vous faite :
allinurl:cdkey.txt
ça va renvoyer quoi selon vous :lol:

ou bien
intext:(password|passcode)
etc.... :D
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

ça me rappelle un script php que j'ai fait qui utilise google pour rechercher des fichiers sur différents hebergeurs : http://arsworld.free.fr/arsgooglebooster.php3

Les résultats sont parfois impressionnant
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

................
Dernière modification par Backup le dim. 02/oct./2011 13:17, modifié 1 fois.
Répondre