Validation de caractères dans une chaine [Résolu]

Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
- - Dernière réponse : jordane45
Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
- 6 oct. 2013 à 03:50
Bonjour,

par cette ligne de code :

if ValideVar[0:2] != "pp" and ValideVar[-1:-3] != "pp":

je tente de valider que les 2 premier caractère ET que les 2 derniers sont différent de "p".

Donc voici ce qui passerais ou ne passerais pas :

Exemple :
- Chaine = fruits -ok passe sans validation
- Chaine = ppfruitspp -C'est ce que je dois valider
- Chaine = pfruitspp -ok passe sans validation

- Présentement, lorsque j'ai ceci comme chaine à valider : opp, (la fin oui c'est "pp" mais pas le début) il me valide alors qu'il ne devrait pas....

Vous avez une idée de la bonne syntaxe ? ou ce que je fais pas de pas correct ?

Merci à vous
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
311
1
Merci
Bonjour,
je ne dev pas en Python, toutesfois pour traiter ta question je t'inviterai à regarder du côté des expressions régulières.
Celle qui devrait te correspondre serait : ^pp*.*pp$

Explications expressions régulières :
http://www.tutorialspoint.com/python/python_reg_expressions.htm

Site pour tester :
https://pythex.org/


Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 153 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
0
Merci
Merci à toi, les liens que tu m'a donné je vais les utiliser assez régulièrement. C'est très intéressant.

J'ai résolu le problème, en faite étant donné que j'était dans la négation, je devais utiliser un or au lieu du and.

Voici apres correction si jamais sa peut être utile a quelqu'un :
if ValideVar[0:2] != "pp" or ValideVar[-2:] != "pp":
jordane45
Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
311 -
pas sur qu'avec un OR tu règles ton souci...
Si je lis ce que signifie ta ligne de code...
Si ValidVar[0:2] n'est pas égale à "PP" OU que ValidVar[-2:] n'est pas égale à PP alors... ce qui veut dire que si ton mot Ne commence pas ou ne finit pas par PP..la condition sera vérifiée...
Donc : ppfruitspp sera validé ok.. mais aussi
ppfruitsddf, fruitspp ... etc..

tu as testé avec le AND maintenant que tu as trouvé la syntaxe correcte pour avoir la fin de ta chaine ?
if ValideVar[0:2] != "pp" and ValideVar[-2:] != "pp":
Commenter la réponse de Goth25