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

Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - 5 oct. 2013 à 23:24 - Dernière réponse : jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention
- 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 

3 réponses

Répondre au sujet
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention - 6 oct. 2013 à 02:19
+1
Utile
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/


Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jordane45
Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - Modifié par Goth25 le 6/10/2013 à 02:35
0
Utile
1
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention - 6 oct. 2013 à 03:50
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.