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 régulière sur des nombres entiers [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 44
    Points : 21
    Points
    21
    Par défaut Expression régulière sur des nombres entiers
    bonjour, je cherche une expression régulière pour avoir la suite "01" "02" ... "99" en excluant le chiffre "13"

    pour l'instant j'en suis la:

    ^[0-9]{2}$

    mais je ne vois pas comment je peux faire pour exclure le chiffre 13

    merci d'avance

    Wind

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Qu'est ce que tu cherches à faire ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    trouver une expression régulière qui puisse accepter tous les chiffres de 01 à 99 sauf le 13.

    - si en entré j'ai "25", l'expression régulière match et me renvoie true
    - si en entré j'ai "05", l'expression régulière match et me renvoie true
    - si en entré j'ai "13", l'expression régulière me renvoie false

    (effectivement avoir "la suite" n'était pas très approprié..)

    Wind

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je vois mal comment exclure 13 dans le pattern. En revanche c'est relativement simple de contourner le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $valid = preg_match('~\d{2}~', $var) && $var !== 13;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    oui ce genre de chose je sais faire, mais ça m'arrange pas, car cette expression est sensée être utilisée dans un fichier de configuration xml...
    l'exclusion d'un chiffre n'est pas du tout possible ?

    ou trouver une expression acceptant tous les chiffres de 01 à 12 et de 14 a 99 ? mais je ne vois pas comment faire non plus.

    Wind

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ok dans ce cas, cette expression devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ~([2-9]\d|0[1-9]|1[^3])~

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    j'avoue ne pas la comprendre... mais ca marche nickel
    je te remercie beaucoup

    je vais essayer de décortiquer l'expression pour la comprendre.

    Wind

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Cette expresion prends
    - les nombres qui commencent par un chiffre allant de 2 à 9 suivi de n'importe quel chiffre
    ou
    - les nombres qui commencent par 0 suivent d'un chiffre allant de 1 à 9 (00 n'est pas pris, c'est ce que tu voulais)
    ou
    - les nombres qui commencent par 1 suivi d'un chiffre qui n'est pas 3

    C'était simple en fait

    -- EDIT

    Ah en fait j'ai fait une petite erreur, la chaine 1a est accepté vu que la classe de caractères accepte n'importe quoi sauf 3 dans ce cas, pour être tout à fait exact il faudrait alors faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ~([2-9]\d|0[1-9]|1[124567890])~

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    exact je n'avais pas tester le 1x

    en tout cas merci beaucoup pour l'aide et la réactivité ^^

    Wind

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

Discussions similaires

  1. Expression régulière sur des nombres
    Par lola06 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2011, 11h42
  2. [RegEx] Expression régulière sur des caractères alphanumériques
    Par hash95 dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2008, 17h26
  3. Réponses: 9
    Dernier message: 01/06/2007, 17h58
  4. Select sur des nombre décimaux de format 0.*
    Par CanardJM dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/08/2005, 16h04
  5. Réponses: 3
    Dernier message: 08/09/2003, 15h06

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