IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Chaine alphanumérique commençant par une lettre [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 57
    Points
    57
    Par défaut Chaine alphanumérique commençant par une lettre
    bonjour,

    voilà mon petit démon : '[^a-zA-Z_]([:alnum:])*'

    je cherche à faire que la chaine n'est pas de caractères spéciaux ( exit les é,#, espace, . , ...) (underscore non compris)

    et que le premier caractère soit obligatoirement une lettre
    puis que les caractères suivant soit de type alphanumérique

    pour moi mon regex correspond à cela mais pas pour PHP

    si vous pouvez m'expliquer mon erreur?

    merci d'avance Laurent

  2. #2
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    salut

    cette expression fonctionne :
    quand on met [^a-zA-Z_], cela veut dire que tu veux que la première lettre ne doit pas être sous la forme alphabétique ou avec un underscore.

    ensuite, \w est l'équivalent de [:alnum:].
    ce dernier n'était pas bon dans ton expression : en effet tu as oublié de mettre double crochet : [[:alnum:]]

    enfin, en mettant ([[:alnum:]])*, cela veut dire que tu peux trouver un alphanumérique plusieurs fois et donc celui récupéré sera la dernière lettre de ton mot.

    bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    je suis dsl mais je ne comprends pas où ca cloche!

    eregi('#^[a-zA-Z_](\w*)#','2@°°]sfd2gdfg')
    eregi('#^[a-zA-Z_](\w*)#','hjdsfgdfg')
    les deux exemples retourne false

    je suis franchement perdu ...

    Merci de votre aide

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Dans ereg et eregi, il ne faut pas mettre de délimiteur de chaînes (le # dans le cas présent).
    De plus ereg et eregi sont déconseillés au profit de preg_match (qui lui a besoin de délimiteurs) qui est une alternative plus performante.

    Sinon en améliorant un peu l'expression régulière, je te conseille ceci :

    preg_match('#^[a-zA-Z_](:?\w)*$#', $tachaine)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Merci bcp je viens de comprendre où ca cloché grace à ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Trouver des noms commençant par une lettre
    Par alaedine dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/09/2016, 13h22
  2. regex pour supprimer une ligne commençant par une lettre
    Par stpaul04 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 03/02/2011, 22h04
  3. [RegEx] Phrase commençant par une lettre et un espace "^[a-zA-Z][ ]"
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 04/03/2010, 15h59
  4. Effacer les fichiers commençant par une lettre
    Par louro1 dans le forum Langage
    Réponses: 1
    Dernier message: 27/06/2009, 17h40
  5. moteur de recherche d'un nom commençant par une lettre quelquonque
    Par monphp dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/06/2007, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo