Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2006, 17h39   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Par défaut Contrôle avec expression régulière

Bonsoir,

Petit soucis sur une expression régulière.

J'ai fait un petit langage de calcul qui fonctionne très bien dans son interprétation. Dans le formulaire de saisie des règles de calcul, j'ajoute un contrôle de syntaxe et j'ai quelques soucis avec mon contrôle avec l'expression régulières suivantes
Code :
if(!preg_match("`^[a-zA-Z0-9\(\)\[\]\"+-*,/%& ]*$`",$texte));

Voici un exemple de règle de calcul qui doit être accepté
Code :
&var["DEDD11"]+&var["DEDD12"]-10%
Les caractères devant être accepté sont les lettres et les chiffres ainsi que les signes que j'ai placé dans mon expression régulière. A savoir() ["]+-=%/*&,

Mon erreur ne me saute pas aux yeux, j'ai trop le nez dedans sûrement.

Votre avis m'intéresse.

Merci D'avance
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 17h54   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Dans votre classe de caractère le tiret a besoin d'être échappé car sinon il s'agit d'un métacaractère qui définit en temps normal un intervalle (exemple : [a-z] toutes les lettres minuscules).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 18h13   #3
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Je ne comprends la réponse.

La solution serait de faire uniquement ceci ?

Code :
if(!preg_match("`^[a-zA-Z0-9\(\)\[\]\"+\-*,/%& ]*$`",$texte));
Mai cela ne fonctionne pas
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 18h26   #4
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
D'après ce que j'ai lu, "dans les crochets, chaque caractère représente ce qu'il est. Pour représenter un ] il faut le mettre en premier (ou après un ^ si c'est une interdiction), un - se met en premier ou en dernier."

donc j'ai modifié comme ceci :

Code :
if(!preg_match("`^[][a-zA-Z0-9\(\)\"+\*,/%& -]*$`",$texte));
Mais bon, cela ne change rien.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 18h38   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Essaie avec quelque chose comme ceci (pas testé) :
Code :
if(!preg_match("`^[a-z0-9()\[\]\"+*,/%& -]*$`i", $texte));

Pour rappel, tu peux consulter ce tutoriel : http://g-rossolini.developpez.com/tu...ns-regulieres/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 10h11   #6
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci Yogui,

J'avais déjà testé quelque chose comme cela, alors j'ai qu'en même testé ce que tu m'as fourni, cela n'a pas fontionné.

J'ai refait quelques modifs et cela ne fonctionne toujours pas.

J'ai lu plein de chose sur le sujet et je n'ai sûrement pas tout compris.

Il n'existe pas un débugueur qui dit ce qu'il n'aime pas ?
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h53   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
PHPEdit a un checker de syntaxe de regex
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 18h45   #8
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci, j'ai téléchargé la version française sur le site de waterproof et je vais passer ma soirée sur ce logiciel.

ça tombe bien, je ne savais pas quoi faire!!!!
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 19h32   #9
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Arf, désolé, je me suis mal exprimé. Le logiciel PHPEdit est distinct du testeur de regex.
Cela dit, tu peux retrouver notre test ici : http://g-rossolini.developpez.com/tu...s/phpedit-2-6/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h34.


 
 
 
 
Partenaires

Hébergement Web