[Javascript] Vérifier parentheses via regex
Résolu/Fermé
devMan
Messages postés
74
Date d'inscription
jeudi 10 décembre 2009
Statut
Membre
Dernière intervention
16 septembre 2010
-
16 déc. 2009 à 10:15
devMan Messages postés 74 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 - 26 janv. 2010 à 10:56
devMan Messages postés 74 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 - 26 janv. 2010 à 10:56
Bonjour,
j'ai une zone de text dans laquel l'utilisateur peut saisi quelque chose comme ça:
(1 and 2) or 3 ou bien (1 and (2 and 3) or 4)....
je veux une reg exp pour vérifier pour chaque parenthèse ouverte j'ai une parenthèse fermée.
j'ai une zone de text dans laquel l'utilisateur peut saisi quelque chose comme ça:
(1 and 2) or 3 ou bien (1 and (2 and 3) or 4)....
je veux une reg exp pour vérifier pour chaque parenthèse ouverte j'ai une parenthèse fermée.
A voir également:
- Regex parentheses
- Regex ne contient pas ✓ - Forum Programmation
- Regex tabulation ✓ - Forum Programmation
- Parentheses clavier - Forum Logiciels
- Regex buddy - Télécharger - Édition & Programmation
- Regex adresse postale - Forum PHP
8 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 déc. 2009 à 10:21
16 déc. 2009 à 10:21
Salut,
Et le langage est ???
Et le langage est ???
devMan
Messages postés
74
Date d'inscription
jeudi 10 décembre 2009
Statut
Membre
Dernière intervention
16 septembre 2010
15
16 déc. 2009 à 10:28
16 déc. 2009 à 10:28
Salut,
merci de votre reponse,
JavaScript
merci de votre reponse,
JavaScript
Salut,
Je pense qu'il faudra utiliser des motifs recursifs.
Je ne connais pas l'implementation en JavaScript.
En revanche je pourrai te donner en Perl.
Je pense qu'il faudra utiliser des motifs recursifs.
Je ne connais pas l'implementation en JavaScript.
En revanche je pourrai te donner en Perl.
devMan
Messages postés
74
Date d'inscription
jeudi 10 décembre 2009
Statut
Membre
Dernière intervention
16 septembre 2010
15
16 déc. 2009 à 10:46
16 déc. 2009 à 10:46
Salut,
tu peux me donner en Perl et je vais voir comment je peux le traduit en javascript..
tu peux me donner en Perl et je vais voir comment je peux le traduit en javascript..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
je veux une reg exp pour vérifier pour chaque parenthèse ouverte j'ai une parenthèse fermée.
En ce cas il suffit de compter les paranthèses ouvrantes/fermantes.
En fait ce n'est pas vraiment ça que tu veux, puisqu'il faut aussi le bon emplacement sinon il pourra saisir ça et ça passera
(1 and )2 or 3 ou bien (1( and 2 and 3) or 4)....
Quelque chose comme ça, mais il faut peaufiner je pense
je veux une reg exp pour vérifier pour chaque parenthèse ouverte j'ai une parenthèse fermée.
En ce cas il suffit de compter les paranthèses ouvrantes/fermantes.
En fait ce n'est pas vraiment ça que tu veux, puisqu'il faut aussi le bon emplacement sinon il pourra saisir ça et ça passera
(1 and )2 or 3 ou bien (1( and 2 and 3) or 4)....
Quelque chose comme ça, mais il faut peaufiner je pense
#!/usr/bin/perl $str="(1 and (2 and 3) or 4)"; $str=~/(\((?:(?>[^()]+)|(?1))*\))/; ($str eq $1)?print "$1 ok\n":print "ne corresponds pas\n"; # manque une paranthese $str="(1 and (2 and 3 or 4)"; $str=~/(\((?:(?>[^()]+)|(?1))*\))/; ($s eq $1)?print "$1 ok\n":print "ne corresponds pas\n"; __END__
Re,
Correction
Correction
#!/usr/bin/perl $str="(1 and (2 and 3) or 4)"; $str=~/(\((?:(?>[^()]+)|(?1))*\))/; ($str eq $1)?print "$1 ok\n":print "ne corresponds pas\n"; # manque une paranthese $str="(1 and (2 and 3 or 4)"; $str=~/(\((?:(?>[^()]+)|(?1))*\))/; ($str eq $1)?print "$1 ok\n":print "ne corresponds pas\n"; __END__
devMan
Messages postés
74
Date d'inscription
jeudi 10 décembre 2009
Statut
Membre
Dernière intervention
16 septembre 2010
15
16 déc. 2009 à 12:43
16 déc. 2009 à 12:43
Salut,
merci de votre reponse,
tu peux me donner des explications sur ce que tu as fait stp ?
?: , ?> , ?1 ..................
Pour être en mesure de convertir ce regexp à javaScript
merci de votre reponse,
tu peux me donner des explications sur ce que tu as fait stp ?
$str=~/(\((?:(?>[^()]+)|(?1))*\))/;
?: , ?> , ?1 ..................
Pour être en mesure de convertir ce regexp à javaScript
devMan
Messages postés
74
Date d'inscription
jeudi 10 décembre 2009
Statut
Membre
Dernière intervention
16 septembre 2010
15
26 janv. 2010 à 10:56
26 janv. 2010 à 10:56
Re,
merci de votre reponse,
il me semble ça va pas marcher avec les regexp javascript...
car je pense que les lookbehind : (?<=X) positive lookbehind et (?<!X) negative lookbehind .
n'existe pas en javascript..
par contre je peux faire ça :
merci et bon dev
merci de votre reponse,
il me semble ça va pas marcher avec les regexp javascript...
car je pense que les lookbehind : (?<=X) positive lookbehind et (?<!X) negative lookbehind .
n'existe pas en javascript..
par contre je peux faire ça :
var incr = 0; var parentheseOk = false; for(var i =0 ; i < maChaine.length; i++){ if(maChaine[i] == '('){ incr++; } if(maChaine[i] == ')'){ incr--; if (incr < 0) { break; } } } alert(incr); parentheseOk = (incr == 0) ; alert(parentheseOk);
merci et bon dev