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

MATLAB Discussion :

Toutes les occurences Regexp


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut Toutes les occurences Regexp
    Bonjour,

    J'ai une chaine de caractère dans laquelle se repètent des "blocs" de même format. Par exemple:

    var=var1
    temps=temps1

    var=var2
    temps=temps2

    Quand je recherche les valeurs de var et temps, il me renvoit toujours les deux dernieres (var2 et temps2) mais sans jamais me renvoyer toutes les occurences existantes.

    Ma syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [tok, mat] = regexp(str, reg, 'tokens', 'match')
    et le problème n'pas l'air de venir du reg (avec un "bloc", ça fonctionne bien)

    Comment faire?
    Merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Par défaut la fonction REGEXP doit te renvoyer toutes les occurrences qu'elle trouve dans la chaîne de caractères.
    Pourrais-tu nous montrer la variable 'str' ?

    Duf

  3. #3
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Ma variable est créée comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    str={};
    fid=fopen('test.m');
    while 1
       tline = fgetl(fid);
       if ~ischar(tline), break, end
       str = [str char(10) tline];
    end
    fclose(fid);
     
    str = cell2mat(str);
    Oui je comprends pas j'ai essayé de diviser en deux regexp (trouver les blocs puis les traiter un par un) mais il me renvoit du coup qu'un bloc (début - fin de fichier)...

    Pour reprendre l'exemple avec test.m=

    var=var1
    temp=temp1;

    var=var2
    temp=temp2;
    si je fais:
    il me renvoit bien var1 et var2

    mais si je fais:
    il me renvoit:

    var1
    temp=temp1;
    var=var2
    temp=temp2

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Je pense que tu devrais ajouter un '?'

    [EDIT]Voici le lien dans la documentation où ce comportement est expliqué: Documentation MathWorks

  5. #5
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut


    Merci! Même astuce qu'en php, déjà oubliée!

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

Discussions similaires

  1. [RegEx] Regex : récupérer toutes les occurences dans une chaîne
    Par Poulpynette dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2006, 10h14
  2. Retrouver toutes les occurences dans un memo
    Par johweb dans le forum Delphi
    Réponses: 2
    Dernier message: 09/06/2006, 14h44
  3. connaitre toutes les occurences d'une chaine
    Par semaj_james dans le forum C
    Réponses: 2
    Dernier message: 11/12/2005, 14h46
  4. Borland C++ 5.5 remplacer toutes les occurences
    Par cdelamarre dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/11/2005, 12h23
  5. replace() qui s'applique sur toutes les occurences
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2005, 11h27

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