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

Python Discussion :

Regex pour une entrée de nombre


Sujet :

Python

  1. #1
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut Regex pour une entrée de nombre
    Bonjour,

    avec ce regex cela valide une suite de nombre qui peuvent être séparé par un tiret

    je voulais savoir ce que je dois modifier pour accepter en plus du tiret un espace et limiter le nombre de chiffres (hors tiret et espace) à 15 chiffres maxi


    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Bonjour,

    pour accepter un espace en plus du tiret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "^[+-]?\d(?:[\- ]*\d)+$"
    Testé sur Regex101, la chaîne suivante matche avec l'expression régulière.

    Pour la limitation à 15 chiffres max dans l'expression régulière, je ne vois pas de prime abord.

  3. #3
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    Merci beaucoup Arioch

    on m'a proposé cette solution qui limite à 15 chiffres et qui marche bien

    Mais finalement ta solution me convient mieux, car elle ajoute le signe + ( ce qui n’était pas dans ma demande originelle, mais me convient très bien)

    de plus je me rends compte que ce que je voulais ce n'était pas plus de 15 chiffre ( 13 ou 14 serait validé, mais pas 16) avec le regex qu'on ma proposé je suis obligé de taper 15 chiffres ( c'est ma faute car ma question n’était pas assez précise)

    si le regex que tu me proposes pouvait être modifié pour ne pas accepter plus de n chiffre, cela serait le Grall sur le gâteau mais déjà un grand merci pour ta réponse

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Zembla Voir le message
    si le regex que tu me proposes pouvait être modifié pour ne pas accepter plus de n chiffre, cela serait le Grall sur le gâteau mais déjà un grand merci pour ta réponse
    Si vous venez chercher de l'aide c'est pas pour avoir du prêt à emporter (et discutailler sur la couleur du ruban) mais pour apprendre à faire par vous même.
    Vous avez un tuto livré avec Python sur les expressions régulière qui comporte un chapitre sur les répétitions et la syntaxe des accolades qui permet de faire çà.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    ben dite donc il est colère le monsieur. . je ne viens pas chercher du prêt à porter, et je ne vois pas ou est le ruban dans mes propos. Je vais apprendre les 250 langages de programmation qui existent dans le monde. Je suis sur python, javascript,php etc.; et j’apprends tous les jours grâce à de formidables personnes qui viennent partager leur savoir. Si c'est pour péter une durite pour nothing, cador ou pas cador du développement je trouve ça .. on va dire ridicule.

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Zembla Voir le message
    de plus je me rends compte que ce que je voulais ce n'était pas plus de 15 chiffre ( 13 ou 14 serait validé, mais pas 16) avec le regex qu'on ma proposé je suis obligé de taper 15 chiffres ( c'est ma faute car ma question n’était pas assez précise)

    si le regex que tu me proposes pouvait être modifié pour ne pas accepter plus de n chiffre, cela serait le Grall sur le gâteau mais déjà un grand merci pour ta réponse
    Remplacer {14} par {1,14} (non testé mais ça me semble assez logique selon les lois des regex).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    Merci Sve@r ça fonctionne parfaitement. Je vais allez décortiquer ce regex sur le lien proposé par l'autre énervé.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Zembla Voir le message
    Si c'est pour péter une durite pour nothing, cador ou pas cador du développement je trouve ça .. on va dire ridicule.
    Les expressions régulières s'utilisent a peu près de la même façon dans tous les langages.

    Citation Envoyé par Zembla Voir le message
    Je suis sur python, javascript,php etc.; et j’apprends tous les jours grâce à de formidables personnes qui viennent partager leur savoir.
    Un tuto est une forme de partage du savoir de même qu'une bibliothèque "capture" le savoir dans un domaine particulier.... Et ce sont les premières ressources à utiliser pour apprendre (ce qui suppose en avoir connaissance pour s'y replonger lorsqu'on rencontre une fonctionnalité qu'on avait survolé de loin).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Les expressions régulières s'utilisent a peu près de la même façon dans tous les langages.
    Suis souvent d'accord avec toi mais peut-être pas ici. Les regex ont quand-même on peut dire leur propre langage, langage assez complexe et pas évident à maitriser dans son intégralité.
    Je me pense plutôt à l'aise en regex mais quand je vois ce qui tourne ici je réalise en fait que mes regex à moi c'est des regex de bébé. Et donc si un jour j'avais une contrainte que je n'arrive pas à exprimer en regex, je viendrais probablement moi aussi ici demander un "pret à emporter".
    Surtout que le post initial était assez complet, et montrait de la recherche. Ca ne ressemble pas à un débutant qui arrive en disant "j'ai une regex à faire, vous pouvez me la faire pendant que je vais jouer à cod"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Suis souvent d'accord avec toi mais peut-être pas ici. Les regex ont quand-même on peut dire leur propre langage, langage assez complexe et pas évident à maitriser dans son intégralité.
    C'est pour ça que j'ai dit qu'elles s'utilisent a peu près de la même façon dans tous les langages.

    Citation Envoyé par Sve@r Voir le message
    Et donc si un jour j'avais une contrainte que je n'arrive pas à exprimer en regex, je viendrais probablement moi aussi ici demander un "pret à emporter"...
    En général, je fais sans coder la contrainte dans l'expression régulière si ça me prend trop de temps à le coder.
    Ce n'est qu'en 2ième/3ième mouture que je m'amuse éventuellement à fignoler côté regexp.
    L'intérêt est qu'il y en a une poignée ou plus à retravailler, ce qui donne l'occasion de passer du temps à réviser un peu ce qui tourne autour.

    Mais quand je lis:
    on m'a proposé cette solution qui limite à 15 chiffres et qui marche bien

    Mais finalement ta solution me convient mieux, car elle ajoute le signe + ( ce qui n’était pas dans ma demande originelle, mais me convient très bien)
    On jauge ce qui a été proposé plutôt que d’approfondir un peu les mécanismes qui les font marcher. On n'est pas dans une logique d'apprentissage mais de consommation.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    @Zembla: Si à l'issu de ce post, tu as assimilé ce que fait ^ $ ( ?: ) [ ] {}, et que tu arrives à te les approprier le ruban est brodé d'or

    Pour apprendre et s'entrainer: https://regexone.com/lesson/introduction_abcs
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  12. #12
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    Merci pour le lien Hominidé.

    Je me suis un peu emporté et prie wiztricks de m'excuser. Car le nombre de fois où il aide les internautes ici, c'est quand même formidable. Il a raison, c'est mieux de maîtriser (un peu) les regex qui sont indispensables dans n'importe quel langage. Je n'ai pas l'impression d'être venu faire mon marché ou alors, j'ai juste pris une salade et quelques tomates, mais j'avais déjà les olives et le Beaufort.encore merci à tous les intervenants (cador ou aspirant cador) qui donnent de leur temps pour aider les autres.

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

Discussions similaires

  1. Excel pour une simulation de nombres ?
    Par Joubarbe dans le forum Excel
    Réponses: 2
    Dernier message: 13/07/2008, 21h03
  2. Probleme avec regex pour une soustraction de charactére
    Par Sioul88 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 05/06/2008, 14h45
  3. Regex pour une validation de password
    Par bougoud dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/09/2007, 14h54
  4. [Débutant] Listener pour une entrée dans le presse papier.
    Par Silvio02 dans le forum Général Java
    Réponses: 6
    Dernier message: 08/01/2006, 22h44
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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