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 :

Expression pour trouver une String


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut Expression pour trouver une String
    Bonjour

    J'ai une String qui peut avoir les suivantes valeurs:

    "A"
    "ABCB"
    "A_B"
    "A_B_C"
    "AB_C"
    "A_BC"
    "A_BABAJD_DKK"

    Je veux créer une expression régulière qui soit capable de capturer les occurences décrites.

    Je ne veux pas que l'expression régulière capture des occurences comme:
    _A
    A_
    AB_CD_C_

    Pour résumé, mon string est correcte s'il ne contient que des majuscules et peut être des tirets, si il commence par une majuscule, si il termine par une lettre majuscule et si, le string contient des tirets, qu'il n'y en est un seul à la foi.

    Mon expression régulìere actuelle est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "^[A-Z]+\\_?[A-Z]+$"
    Cependant, elle ne marche que quand le string a un seul tiret.

    exemple: "AB_CD" => OK
    "AB_CD_EF" => NOT OK (et je voudrais que ca passe)

    Une idée de ce qu'il me manque?

    Merci!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    comme ça ? :
    ^[A-Z][A-Z_]*(?<!_)$

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    Merci pour ta réponse. Mais j'ai trouvé une solution:

    "^[A-Z]+[A-Z\\_{0,1}]*[A-Z]+$"

    Je vais tout de même essayé la tienne.

    Merci
    a+

    Citation Envoyé par stealth35 Voir le message
    comme ça ? :
    ^[A-Z][A-Z_]*(?<!_)$

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    marche pas avec juste A la tienne

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    Tu as raison...

    Et la tienne et la mienne ne marchent pas quand il y a plus d'un tiret de suite...

    Ce que je voudrais:

    A_B => OK
    A__B => NOT OK

    Citation Envoyé par stealth35 Voir le message
    marche pas avec juste A la tienne

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    mince j'ai oublié ça, je regarde ça


    EDIT : ^(?:[A-Z]_{0,1})+(?<!_)$

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 64
    Points : 96
    Points
    96
    Par défaut
    /^[A-Z]+(_[A-Z]+)*$/ tout simplement non ? (non testé)

    EDIT : Testé et Approuvé (de mon coté)

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Avalion Voir le message
    /^[A-Z]+(_[A-Z]+)*$/ tout simplement non ? (non testé)

    EDIT : Testé et Approuvé (de mon coté)
    tu prends de la ressource en faisant une capture inutilement

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 64
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    tu prends de la ressource en faisant une capture inutilement
    Lol ba /^[A-Z]+(?:_[A-Z]+)*$/ Mais après c'est à vous de voir :p

Discussions similaires

  1. expression reguliere pour remplacer une string
    Par flash22 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 22/03/2011, 16h43
  2. [VBA-E]Methode pour trouver une valeur qui apparait plusieur fois
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2006, 13h11
  3. Réponses: 21
    Dernier message: 10/04/2006, 14h29
  4. Un moyen pour compresser une string ?
    Par Bruno13 dans le forum Langage
    Réponses: 9
    Dernier message: 11/11/2005, 05h05
  5. Algo le plus rapide pour trouver une répétition ?
    Par AsmCode dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 28/07/2005, 00h26

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