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 :

Regex sur les 3 premiers caractères d'une chaine [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut Regex sur les 3 premiers caractères d'une chaine
    Bonjour
    j'ai besoin de créer une regex qui me permet de testé si les trois premiers caractères d'une chaine sont compris dans cette liste :

    ('ABD', 'ABS', 'AGS', 'AMS', 'AN', 'AS', 'ATQ', 'BAQ', 'BAS', 'BHM', 'BHQ', 'BJQ', 'BNAE', BS', 'BSSP', 'CSP', 'DA', 'DAN','DHS', ' DIN', 'DMZ', 'DTD', 'EN', 'FON', 'GAQ', 'GBQ', 'HAN', 'ISO', 'LHQ', 'LJ', 'LN', 'MBB', 'MIL', 'MS', 'NAS', 'NFE', 'NFL', 'NSA', 'NSE', 'PAN', 'SL', 'SP', 'ST', 'TAN', 'TH', 'VFN')

    n'ayant que des connaissances basiques sur les regexs je sollicite votre aide

    Merci d'avance
    Boo

  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
    pas besoin de regexp pour ca, tu prend les 3 premières lettres avec substr et tu fais un in_array

  3. #3
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Une versions simple et non optimisée serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^(ABD|ABS|AGS|AMS|AN|AS|ATQ|BAQ|BAS|BHM|BHQ|BJQ|BNAE|BS|BSSP|CSP|DA|DAN|DHS|DIN|DMZ|DTD|EN|FON|GAQ|GBQ|HAN|ISO|LHQ|LJ|LN|MBB|MIL|MS|NAS|NFE|NFL|NSA|NSE|PAN|SL|SP|ST|TAN|TH|VFN).*
    avec
    • ^ : indique que l'on se place au début de la chaîne
    • (...|...|...) que l'on fait un OU entre plusieurs chaînes
    • .* indique que l'on ne se préoccupe pas de la fin de la chaine.


    Ensuite la syntaxe peut varier subtilement en fonction de l'outils/langage que tu utilise pour gérer ta regexp.

  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
    Citation Envoyé par jabbounet Voir le message
    .* indique que l'on ne se préoccupe pas de la fin de la chaine.
    ah c'est nouveau ca ?

  5. #5
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ah c'est nouveau ca ?
    non je ne crois pas.

    . remplace n'importe quel caractères
    * indique que cela peut se produire entre 0 et x fois.

    donc en ça matche a peu près n'importe quoi.

  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
    Citation Envoyé par jabbounet Voir le message
    non je ne crois pas.

    . remplace n'importe quel caractères
    * indique que cela peut se produire entre 0 et x fois.

    donc en ça matche a peu près n'importe quoi.
    je sais bien, c'est que que l'explication n'a rien a voir, c'est inutile de la rajouter d'ailleurs, comme le fait de faire un groupe capturant sur le reste, et comme le fait d'utiliser des regex pour

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Merci à vous deux
    stealth dans le cadre de ce projet (longue histoire) je ne peux pas ces fonctions sinon j'aurais pas posté

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

Discussions similaires

  1. [Débutant] Récupérer les 2 premiers caractères d'une chaine de caractères
    Par titus2709 dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/06/2011, 11h52
  2. Réponses: 2
    Dernier message: 04/05/2011, 17h48
  3. Récupérer les n premiers caractères d'une chaine.
    Par derfatypik dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2008, 11h45
  4. Réponses: 2
    Dernier message: 04/10/2007, 11h31
  5. Réponses: 2
    Dernier message: 19/06/2007, 16h37

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