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 :

Vérifier chaine de codes hexa [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Vérifier chaine de codes hexa
    Bonjour,

    Je cale sur preg_match un peu trop complexe pour ce que je connais.

    Je récupère en paramètre une chaine de caractères.
    Celle-ci contient des codes hexa => [0-9A-F]{2} .

    Il peut y avoir une plage code, donc séparé par un - . Ex : 04-1F .
    Et il peut y avoir plusieurs de ces codes ou plages, séparés par un underscore.

    Exemples : 1A ou 1A-1F ou 1A_2A ou 1A-1F_2A_30-4F ...

    Et donc je veux vérifier que ma chaine est au bon format.

    Merci d'avance aux pros du regexp.

    JP

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    ([0-9A-F]{2}(-|_))*[0-9A-F]{2}
    ?

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Quasiment la même, sauf que je préfère une classe la classe de caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    // motif
    $myPattern = '/^[0-9A-F]{2}(?:[-_][0-9A-F]{2})*$/';
     
    // tests
    $myString = "1A";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1A_2A";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1A-1F_2A_30-4F";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
     
    $myString = "1M";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1M-1F_2A_30-4F";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1B-1M_2A_30-4F";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1B-1M_2A _30-4F";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    $myString = "1B-1M_2_30-4F";
    preg_match($myPattern, $myString, $matches); print_r($matches); print "<hr/>";
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Trop fort !
    Et bravo pour la réponse rapide.

    Je vais revoir les tuto et docs pour mieux utiliser les parenthèses et autres.
    Et je me prenais trop la tête avec les cas des plages, puis les séparations si plusieurs hexa. Alors que, bien vu, -|_ suffisait !


    Merci beaucoup à tous les 2.

    JP

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Les tutos de notre site sont vraiment très bien écrits, mais quiconque veut manipuler les regex un peu souvent devrait lire ce livre : http://general.developpez.com/livres...L9780596528126
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

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

Discussions similaires

  1. [T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Sybase
    Réponses: 1
    Dernier message: 21/09/2006, 08h28
  2. [SYBASE][T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/09/2006, 16h28
  3. Le code Hexa d'un caractère
    Par Cygnus Saint dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2006, 10h25
  4. Réponses: 4
    Dernier message: 28/01/2006, 20h03
  5. trouver le code hexa de couleur ?
    Par piff62 dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 12/04/2005, 09h33

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