Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2709 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Expression régulière particulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expression régulière particulière

n°1561030
Goose6
Posté le 16-05-2007 à 11:25:12  profilanswer
 

Je souhaiterais faire une expression régulière vérifiant la validité d'une chaîne de caractère selon le format suivant :  

  • un chiffre de 1 à 5 --> [1-5]
  • un chiffre de 1 à 5 suivi de AND ou OR puis d'un autre chiffre de 1 à 5
  • la même chose qu'au dessus avec des parenthèsages


Exemples :  

  • 1
  • (1)
  • 1 OR 2
  • (1 AND 2) OR (3 OR 1)


 
Merci d'avance  ;)


Message édité par Goose6 le 16-05-2007 à 11:25:50
mood
Publicité
Posté le 16-05-2007 à 11:25:12  profilanswer
 

n°1561096
cesarr89
Posté le 16-05-2007 à 12:43:28  profilanswer
 

tu veux qu'on le fasse ?

n°1561170
Goose6
Posté le 16-05-2007 à 14:32:59  profilanswer
 

Etant donné que je ne connais pas grand chose aux expressions régulières, j'aimerais juste connaître la méthode pour effectuer la récurrence dans les parenthèses parce que le reste semble accessible.
^/(\()[1-5].((AND|OR).[1-5].){0|1}\)
 
Enfin bon, je ne sais pas comment l'agencer, j'ai compris le plus gros mais pas l'essentiel... :(


Message édité par Goose6 le 16-05-2007 à 14:36:00
n°1562053
styx31
Posté le 18-05-2007 à 14:27:55  profilanswer
 

La récurrence ce n'est pas le fort des expressions régulières, tu ne pourras donc pas gérer tous les cas avec une simple regex.
 
Ce que tu demandes ressemble plutôt à ce qu'effectue un tokenizer.
 
En gros, tu vas certainement devoir analyser la chaîne "à la mano". Les regex peuvent t'aider à diviser ta chaine en plusieurs jetons, et tu devras ensuite analyser le sens de chaque jeton pour construire un arbre pour ton expression.
 
Le but étant ensuite de pouvoir interroger l'arbre comme une expression.
 
Bienvenue dans le monde des parser/lexer :D

Message cité 1 fois
Message édité par styx31 le 18-05-2007 à 14:30:03
n°1563529
Goose6
Posté le 22-05-2007 à 15:32:38  profilanswer
 

styx31 a écrit :

La récurrence ce n'est pas le fort des expressions régulières, tu ne pourras donc pas gérer tous les cas avec une simple regex.
 
Ce que tu demandes ressemble plutôt à ce qu'effectue un tokenizer.
 
En gros, tu vas certainement devoir analyser la chaîne "à la mano". Les regex peuvent t'aider à diviser ta chaine en plusieurs jetons, et tu devras ensuite analyser le sens de chaque jeton pour construire un arbre pour ton expression.
 
Le but étant ensuite de pouvoir interroger l'arbre comme une expression.
 
Bienvenue dans le monde des parser/lexer :D


Merci beaucoup du coup de paluche :jap: , en effet, j'ai décomposé grace à ce StringTokenizer ma phrase ( ==> parser) et ensuite j'ai pu analyser syntaxiquement les "jetons" de ma phrase ( ==> lexer).
 
Dommage pour la RegEx, j'aurais bien aimé...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Expression régulière particulière

 

Sujets relatifs
perl : expression rationnelle particuliereExpression régulière
saugarde reguliere de la baseexpression regulière pour controle mail
Regex particulière ? (newbie inside)[BASH] expression régulières
Regular Expression pour faire matcher toutes IP sauf une ? comment ? 
Plus de sujets relatifs à : Expression régulière particulière


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR