Expressions régulières "ne contient pas ..." [Résolu/Fermé]

Signaler
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
-
 Djizeuss -
Bonjour,

J'aimerais faire la fonction

Si la chaine ne commence pas par "ABC" alors la fonction "imagestring($im, 1, 14, 2, "$texte", $black);" est apliquée

Si la chaine commence par "ABC" alors la fonction "imagestring($im, 1, 14, 2, "$texte", $black);" n'est pas appliquée


J'ai déjà chercher sur https://www.commentcamarche.net/contents/803-php-expressions-regulieres mais je n'ai pas trouvé pour "ne contient pas"

2 réponses

Messages postés
9687
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
21 juin 2020
1 195
Je ne sais pas comment faire et je ne connais pas le PHP, mais avec la logique, tu peux t'en sortir.
En gros tu fais :
if( /* test sur ABC*/) {imagestring($im, 1, 14, 2, "$texte", $black);}
Deux solutions logique peuvent s'appliquer : le "non" logique ou le "sinon" du if (en supposant que tu sache détecter une chaine commençant par ABC)
if( ! find("^ABC",string)) {imagestring($im, 1, 14, 2, "$texte", $black);}

ou alors :
if( find("^ABC",string) ) {/*ne fait rien */;}else {imagestring($im, 1, 14, 2, "$texte", $black);}

tu aura compris que ce que je veux dire par find("^ABC",string) c'est une fonction qui renvoie vrai so la chaine string commence par ABC.
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
120
"ne contient pas" c'est très différent de "ne commence pas"
Comment faire de l'informatique si on ne voit pas des choses comme ça ?

donc pour "ne commence pas", c'est
if preg_match('~^(?!ABC)~')
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
J'avais fait une faute dans le titre mais on ne peut plus changer c'est pour sa :s
Sinon pour ton code il y a un problème, ou est le nom de la chaine ?
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
120
ouais ben moi je vois ça , DANS LE MESSAGE:

Si la chaine ne commence pas par "ABC"......
Si la chaine commence par "ABC" ....

... mais je n'ai pas trouvé pour "ne contient pas"


Alors les excuses à la noix.....





Comme ce qui était le plus décrit était :
Si la chaine ne commence pas par "ABC"......
Si la chaine commence par "ABC" ....

j'ai répondu pour "ne commence pas"



Sinon, si c'est "ne contient pas" qu'il te faut, c'est
if preg_match('~^(?!.*?ABC.*\z)~')

Remarque:
je ne sais jamais si c'est \z ou \Z qu'il faut utiliser. Encore pas compris la différence.
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
Je peut savoir pourquoi tu me dit tout sa ?
C'est "ne commence pas" ce que je cherche...
Je t'es dit j'ai fait une faute dans le titre j'aurais du mettre "ne commence pas..."

Et sinon je t'es dit :
Sinon pour ton code il y a un problème, ou est le nom de la chaine ?
Heyquem: tu devrais faire avocat ou commercial si tu aimes tant jouer sur les mots. En attendant, ton arrogance "à la noix" ne nous aide pas beaucoup.

Aka: tu as trouvé la solution ? je suis intéressé aussi.