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

Delphi Discussion :

Expressions régulières delphi => matches caractère '-'


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut Expressions régulières delphi => matches caractère '-'
    Bonjour,

    J'ai une petite question sur les expressions régulières en delphi
    (j'ai déjà regardé la faq delphi sur le sujet)

    Comment faire en sorte que le caractère '-' soit repéré lors du match?
    Précision: le caractère '-' me sert de séparateur entre série de 3 chiffres (tout comme le . et le =). J'ai essayé de le dédoubler ou de mettre un antislash devant mais cela ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RegExpr := '*[0-9][0-9][0-9][-.=][0-9][0-9][0-9][-.=][0-9][0-9][0-9]*';
      ShowMessage('bool matches regexp: '+BoolToStr(MatchesMask('126-265-124',RegExpr)));
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 48
    Points : 54
    Points
    54
    Par défaut Double ton tiret dans [--.=]
    Bonjour,

    Selon http://www.expreg.com/symbole.php
    Le tiret représente l'intervalle à l'intérieur de la classe
    Il s'agit d'un métacaractère s'il est placé dans cette position. Pour permettre sa lecture en tant que caractère "tiret" il convient de le placer en début de la classe comme ceci [-....]

    Je pense qu'il faut que tu le double dans ton expression.
    RegExpr := '*[0-9][0-9][0-9][--.=][0-9][0-9][0-9][--.=][0-9][0-9][0-9]*';

    A Bientôt

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    Merci d'avoir pris la peine de répondre.

    Cela ne fonctionne pas, j'ai un EMaskException qui précise que le mask n'est pas correct.

    Finalement, j'ai mis le ? à la place du caractère spécial et suit passé par un test supplémentaire.

    Sam

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

Discussions similaires

  1. Expression régulière : "n'importe quel caractère"
    Par Thordax dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2010, 15h36
  2. Réponses: 6
    Dernier message: 29/06/2009, 13h32
  3. Réponses: 4
    Dernier message: 14/11/2008, 21h00
  4. Réponses: 6
    Dernier message: 20/06/2008, 13h02
  5. Réponses: 4
    Dernier message: 24/08/2005, 18h40

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