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

WinDev Discussion :

Problème de construction d'expression régulière [WD14]


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de jimmypage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 314
    Points : 474
    Points
    474
    Par défaut Problème de construction d'expression régulière
    Bonjour,

    Je veux affecter un masque de saisie avec une expression régulière à un champ pour lui contraindre une saisie particulière.
    Voici donc ce que j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saisie1..MasqueSaisie="regexp:[0-9*]{0,7}"
    Je veux que l'utilisateur ne puisse saisir que des chiffres et le caractère "*" sur 7 positions. Le code actuel marche très bien...
    Maintenant je voudrais que le caractère "*" ne soit saisissable qu'une seule fois au maximum (et facultatif).

    J'ai trouvé des tutos sur les expressions régulières sur le net mais je n'arrive pas à les appliquer sur Windev. Quel est le moteur d'expression régulière utilisé dans WD ?
    Quelqu'un aurait-il la solution pour la regexp que je veux réaliser ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Il y a une note dans l'aide concernant les expressions régulières : ICI

    C'est au cas où, je ne sais pas si ça peut t'aider, n'utilisant pas les exp. reg.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je ne vois qu'un contrôle à posteriori de la saisie ...

    à bientôt,

    nicolas

  4. #4
    Membre confirmé Avatar de jimmypage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 314
    Points : 474
    Points
    474
    Par défaut
    Oui .. après maintes (vaines) tentatives, je me suis résolu à faire un contrôle à la saisie.

    Merci.

  5. #5
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    saisie1..MasqueSaisie = "regexp:[0-9]*[*]{0,1}[0-9]*"
    saisie1..Taille = 7
    Mais à la prochaine modif vous serez bloqué probablement, les regexp ne permettent pas de tout faire.

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    en fait les étoiles vont permettre de saisir n'importe quel caractère dans l'expression formatée de cette façon, donc à éviter !

  7. #7
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Citation Envoyé par Nicolas_Jeanneau Voir le message
    en fait les étoiles vont permettre de saisir n'importe quel caractère dans l'expression formatée de cette façon, donc à éviter !
    Bonjour,

    Vous répondez à mon message ?
    Si oui, sachez que "*" veut simplement dire "{0, infini}" et que ça s'applique au caractère (ou à l'expression entre parenthèses) qui le précède, ici "[0-9]" (caractère numérique).

    http://fr.wikipedia.org/wiki/Expression_rationnelle

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Vous répondez à mon message ?
    Oui, je vous réponds mais j'ai oublié de vous citer , je m'en excuse !

    je pense que l'expression devrait être :

    "regexp:[0-9]*[\*]{0,1}[0-9]*"

    Car le \ permettra d'interpréter le caractère * comme caractère et non pas comme n'importe quel caractère ...

    A confirmer, ça fait un bail que je n'en ai plus fait et j'ai toujours essayer d'éviter de mettre des * dans mes expressions pour ne pas avoir ce genre de surprise !

    à bientôt,

    Nicolas

  9. #9
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    En théorie, tout ce qui est entre [] est d'office non interprété (sauf le ] je crois), donc[*] est correct.

  10. #10
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    \* si vous voulez, c'est pareil que [*], mais cumuler les 2 je ne sais jamais ce que ça donne, donc je préfère éviter. Est-ce que l'escaping par backslash est toujours en vigueur entre les crochets ? Si non, alors vous autorisez la saisie d'un backslash à la place de l'astérisque.

  11. #11
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Pour information, j'ai testé [\*] et ça matche "\". Donc c'est pas bon de cumuler le backslash et les crochets.

  12. #12
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    En même temps, c'est pas comme si j'avais exactement dis ça deux posts plus haut...

  13. #13
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Tober, je vous remercie pour votre intervention/confirmation, mais j'ai quand même préféré vérifier, car "en théorie" ça semblait vouloir dire que vous n'aviez pas testé.
    Là j'ai testé avec VérifieExpressionRégulière dans WD16. Logiquement ça sera pareil dans un masque de saisie.

    Et ça soulève une question : comment testez-vous la présence d'un caractère qui est soit "]" soit autre chose ?
    Dans WD la réponse semble être en mettant "]" en premier : []a-z].

    PS. Et pour le "-" ?
    []a-z-], à priori, matche "]", "-" et l'alpha.

  14. #14
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    C'est des règles de base des expressions régulières (sans le contexte de WinDev), c'est pour ça que j'en étais a peu près sur mais pas complètement avec WinDev, on a toujours des surprises
    le "-" est bien vérifié si tu le met au début ou à la fin des [].

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

Discussions similaires

  1. Problème sur une simple expression régulière
    Par bernidupont dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/02/2013, 14h49
  2. [RegEx] Problème pour concevoir une expression régulière
    Par lokicorp dans le forum Langage
    Réponses: 5
    Dernier message: 08/07/2011, 13h12
  3. Problème de sed et expression régulière
    Par Empty_body dans le forum Linux
    Réponses: 11
    Dernier message: 12/03/2009, 09h15
  4. [RegEx] Problème avec ereg et expression régulières
    Par kanabzh29 dans le forum Langage
    Réponses: 2
    Dernier message: 08/08/2008, 14h53
  5. Problème de création d'expression régulière
    Par Ithomir dans le forum Langage
    Réponses: 6
    Dernier message: 07/09/2006, 15h55

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