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

ActionScript 3 Discussion :

Problème étrange avec une RegExp


Sujet :

ActionScript 3

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème étrange avec une RegExp
    Bonjour,

    je rencontre un problème étrange avec une expression régulière, voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var pattern:RegExp = /(-?[0-9]+)/g;
    var test:String = '12.3 234,4 54 jhg -53455 34';
    var result:Object = pattern.exec(test);
    trace(result);
    Le pattern est censé me sortir tous les nombres de la chaîne de caractère, il marche parfaitement quand je le test sur cette app : http://gskinner.com/RegExr/

    mais dans mon fla il me sort le premier cas dupliqué en l’occurrence : [12, 12]
    alors qu'il devrait sortir : [12, 3, 234, 4, 54, -53455, 34]
    je bloque là dessus depuis plusieurs heures et je deviens fou, j'ai testé sur d'autres ordinateurs, sur différentes version de flash (CS4 et CS5.5).
    j'ai testé des syntaxes alternatives \d à la place de [0-9] par exemple.

    en plus ça marche parfaitement sur l'app de Grant Skinner.

    auriez-vous déjà rencontré un problème similaires, ou des idée de pistes à explorer ?
    serait-ce un bug ?

    merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 40
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Votre code se comporte normalement, c'est juste que vous n'utilisez pas correctement pattern.exec().

    Ce code ci devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var pattern:RegExp = /(-?[0-9]+)/g;
    var test:String = "12.3 234,4 54 jhg -53455 34";
    var result:Object = pattern.exec(test);
    while (result != null) {
        trace (result[0]);
        result = pattern.exec(test);
    }
    Il s'agit d'appeler exec() plusieurs fois pour tester plusieurs sous-chaînes.
    Voir la doc d'exec() pour plus d'infos.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    je comprends mieux, et du coup il faut que j'utilise la méthode String.match() pour obtenir le résultat escompté sans passer par une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var pattern:RegExp = /-?\d+/gi;
    var test:String = '12.3 234,4 54 jhg -53455 34';
    var result:Object = pattern.exec(test);
    trace( result ); // 12
    trace( test.match( pattern ) ); // 12,3,234,4,54,-53455,34
    je me disais bien que c'était moi le bug !

Discussions similaires

  1. Petit problème avec une regexp
    Par Beleg dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 25/02/2008, 18h46
  2. Problème de performance avec une regexp
    Par NicoV dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 21/02/2008, 19h46
  3. Réponses: 18
    Dernier message: 04/04/2007, 15h34
  4. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 16h41
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 14h20

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