Expressions régulières "ne contient pas ..."
Résolu
Aka13
Messages postés
153
Date d'inscription
Statut
Membre
Dernière intervention
-
Djizeuss -
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"
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"
A voir également:
- Regex ne commence pas par
- Si cellule contient texte alors ✓ - Forum Excel
- Formule sheet si contient ✓ - Forum Excel
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Ce fichier contient l'historique des livres empruntés à la bibliothèque. combien de titres différents contient-il ? ✓ - Forum Excel
- Compter le nombre de valeurs différentes dans 1 colonne EXCEL ✓ - Forum Excel
2 réponses
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.
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.
"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)~')
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)~')
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.
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.