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

Langages de programmation Discussion :

Expression régulière d'un nombre strictement positif?


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 19
    Points
    19
    Par défaut Expression régulière d'un nombre strictement positif?
    Bonjour,
    je voudrais connaitre l'expression régulière d'un nombre entier>0.
    Merci!

  2. #2
    Membre averti
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Points : 330
    Points
    330
    Par défaut
    En base 10 ?
    [1-9][0-9]*

    J'avoue ne pas saisir la difficulté :

  3. #3
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par Strab
    En base 10 ?
    [1-9][0-9]*

    J'avoue ne pas saisir la difficulté :
    Peut être celle qui consiste à considérer le signe ...

    [^-]\s*[1-9][0-9]*
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Cela va dépendre du moteur de regex que tu vas utiliser.
    Par exemple, certains comme celui du Perl ou celui de vim, permettent de spécifier des patterns de longueur zéro qui doivent, ou pas, être "matchés".

    Dans le pseudo portable et plus simple, il y a aura:
    (^|[^- \t])\s*\d+
    début de ligne, ou n'importe quoi qui ne soit pas un '-' (ou un espace), suivit d'un nombre quelconque d'espaces, et enfin un nombre positif (strictement) de chiffres.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre averti
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Luc Hermitte
    un nombre positif (strictement) de chiffres.
    Il faut aussi que le premier chiffre soit non nul. Peux est-ce écris dans ton expression, je ne connais pas cette syntaxe (c'est ce que lisent des outils comme sed, non ?)

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    001 est parfaitement positif. Ce genre de vérif est plus à faire après le match à mon goût.
    Au pire, \d\{-}[1-9]\d* devrait faire l'affaire.

    Sinon, la syntaxe précédente était plus dans la famille perl.
    Cette dernière est de sûr compatible avec Vim, pour perl, je ne sais pas. En perl, ce doit être \d*?[1-9]\d* je crois. (*? doit être le match-any non gourmant, à confirmer par les perl mongers)
    Ou tout simplement: 0*[1-9]\d*

    Sed est super limité : il ne prend pas les regex étendues (ce qui peut s'avérer pénible -- j'ai un script qui me permet de colorer les résultats d'un find+grep, et le fait que sed ne connaisse pas les regex étendues oblige à cascader plusieurs sed)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. [RegEx] Expression régulière pour un nombre
    Par PtitGénie dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2011, 13h31
  2. [RegEx] Expression régulière sur des nombres entiers
    Par wind_of_o dans le forum Langage
    Réponses: 8
    Dernier message: 12/12/2011, 18h12
  3. Expression régulière sur des nombres
    Par lola06 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2011, 11h42
  4. Réponses: 9
    Dernier message: 01/06/2007, 17h58
  5. Réponses: 22
    Dernier message: 18/07/2006, 15h05

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