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 :

[regexp] tous les caractères sauf une expression


Sujet :

MATLAB

  1. #1
    Membre expérimenté
    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
    Points : 1 500
    Points
    1 500
    Par défaut [regexp] tous les caractères sauf une expression
    Bonjour

    J'aimerais rechercher une chaine terminée par ;\n (sachant que la variable en elle-même n'est pas terminée par ;\n).

    J'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reg = '.+(?!;\n) # une autre instruction suit';
    mais apparamment, il saute toujours le ;\n et s'arrête finalement plus loin quand il trouve l'"autre instruction".
    J'aurais bien tenté un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reg = '[^;\n]+ # une autre instruction suit';
    mais là il va comprendre "tout sauf \n et ;", et non pas (;\n) comme expressionne entière.

    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 : 40
    Localisation : France

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

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

    Comme ca vite fait j'aurais proposé quelquechose comme:
    pour récupérer toutes les expressions suivies par ';\n'.

    Mais il faut tester...

    Duf


    EDIT: Sinon pour reprendre ton expression, en ajoutant des parenthèses ca pourrait peut-être marcher:
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre expérimenté
    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
    Points : 1 500
    Points
    1 500
    Par défaut
    Les parenthèses n'ont pas l'air de fonctionner pour la seconde solution.

    Pour la première solution, j'aurais le même soucis, car il sautera le premier bloc et passera au second quand même:

    var=var1
    temp=temp1;
    // variable sun absente

    var=var2
    temp=temp2
    sun=sun2;
    Il va partir du début de fichier, ne pas trouver sun dans le premier "bloc", mais dans le second malgré le (?=;\n) et me retournera les deux blocs.
    Moi je voudrais qu'il traite bloc par bloc.

    Je vais essayer en faisant d'abord à regexp sur les blocs, puis sur chaque bloc. Mais si tu as une solution pour du 2 en 1...

    Merci

  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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Alors si j'ai bien compris tu veux récupérer les 2 blocs suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var=var1
    temp=temp1
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var=var2
    temp=temp2
    sun=sun2
    Dans ce cas tu peux utiliser
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/04/2012, 19h28
  2. Réponses: 1
    Dernier message: 12/11/2009, 00h16
  3. [RegEx] caractère pour remplacer tous les caractères dans une regex
    Par sp2308 dans le forum Langage
    Réponses: 6
    Dernier message: 09/02/2008, 01h06
  4. Tous les champs SAUF dans une table.
    Par Yepazix dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/08/2005, 16h01
  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