Posez votre question Signaler

REGEX [Résolu]

pepifou 52Messages postés 16 novembre 2008Date d'inscription 16 juillet 2010Dernière intervention - Dernière réponse le 6 mars 2009 à 21:53
Bonjour,
Je voudrais créer une Regex qui exclut tout les caractères spéciaux sauf le "_", qui autorise le lettres en majuscules et les chiffres. De plus, le "_" n'a pas le droit d'être au début ni à la fin et a le droit d'être utilisé qu'une seule fois. Par exemple, elle doit reconnaitre : "aZ_78abc" mais pas "_Abc1" ni "3_ab_c".
Je veux l'insérer dans cette structure :

if (preg_match("# MA REGEX #", $texte))
{

echo 'Correct';

}

else
{

echo 'Erreur';

}


Bonne soirée.
Lire la suite 

REGEX »

Suggestions
17 réponses
Réponse
+1
moins plus
je veux pourvoir mettre des lettres minuscules ET majuscules.
donc on peut directement passer à :
^[ [:alnum:] ]+_{1}[ [:alnum:] ]+$/i

sans les espaces…
pepifou - 6 mars 2009 à 21:22
Merci Dalila et Gigaga pour votre réponse rapide et votre REGEX fonctionnelle, elle marche niquel !
Bonne soirée à vous et encore merci !
Dalida - 6 mars 2009 à 21:25
you're welcome et bon courage pour la suite !…
-;o)
pepifou - 6 mars 2009 à 21:53
C'est ici que j'utilise votre REGEX : http://bf.attitude.free.fr
Ajouter un commentaire
Réponse
+0
moins plus
salut,

allez, je tente, j'ai jamais fait autant de Regex qu'en répondant sur CCM !
-:oD
'`[A-Z,0-9]+_{1}[A-Z,0-9]+`'

LETTRES ou chiffres une fois ou plus, soulignement une fois, LETTRES ou chiffres une fois ou plus.
Ajouter un commentaire
Réponse
+0
moins plus
if (preg_match("/[a-z0-9]+[a-z0-9_]*[a-z0-9]+/i", $texte) && substr_count($texte, "_")<=1)
Ajouter un commentaire
Réponse
+0
moins plus
L'ER de Dalida est mieux que la mienne, car moi je fais 2 controles (je voyais pas comment m'assurer que _ n'est qu'une seule fois).
Par contre, l'ER faut l'encapsuler par "//i" pour que ce soit insensible à la casse.
Ajouter un commentaire
Réponse
+0
moins plus
re,

L'ER de Dalida est mieux que la mienne
mais elle contient une erreur que j'ai vu grâce à toi !
'`[A-Z0-9]+_{1}[A-Z0-9]+`'

à trois on va finir par y arriver, c'est sûr !
-:oD
gigaga - 6 mars 2009 à 20:22
Ah oui, la virgule... J'avais meme pas vu ;)

Je dirai donc :

'/^[A-Z0-9]+_{1}[A-Z0-9]+$/i'


Tu confirmes? ;)
Dalida - 6 mars 2009 à 20:23
oui mais sans le "i" puisqu'il ne veut que des majuscules !
-;o)

<edit>
Je voudrais créer une Regex qui exclut tout les caractères spéciaux sauf le "_", qui autorise le lettres en majuscules et les chiffres.
on finit par parler tout seuls !
</edit>
gigaga - 6 mars 2009 à 20:25
Je suis pas sûr :

Par exemple, elle doit reconnaitre : "aZ_78abc" mais pas "_Abc1" ni "3_ab_c".

Il a dit qu'elle doit reconnaitre les majscules mais je pense qu'il a dit ça dans le sens "en plus des minuscules".
Sinon j'ai ajouté les caractères de début et de fin de chaine et enlevé tes `
Ajouter un commentaire
Réponse
+0
moins plus
Merci de vos réponses, je vais tester tout ça. Pour rappel je veux pourvoir mettre des lettres minuscules ET majuscules.
gigaga - 6 mars 2009 à 20:27
if (preg_match("/^[A-Z0-9]+_{1}[A-Z0-9]+$/i", $texte))


doit donc être OK ;)
Ajouter un commentaire
Ce document intitulé « REGEX » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook