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 :

utilisation de la fonction " regexp "


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 63
    Points : 55
    Points
    55
    Par défaut utilisation de la fonction " regexp "
    Bonjour,
    j'ai un vecteur qui s'appel "refs" qui contient des chaîne de caractères :


    refs =

    7×20 char array

    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR200x80x30x2 - CR '

    et je voulais récupérer les parties en rouge pour cela j'ai utilisé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for i=1:NbSolive
        scs(i)=regexp(refs(i,:), '(\w+) - \w+','tokens');
        newscs(i) = erase(scs{i},"CR");
        nscs=(newscs)';
    end
     
    nscs=char(nscs);
    mais le problème c'est que j'arrive pas à les récupérer correctement pour les 6 premières lignes (je pense que c'est à cause du point dans 2.5 ) et j'ai obtenu le résultat suivant ;

    nscs =

    7×11 char array

    '5 '
    '5 '
    '5 '
    '5 '
    '5 '
    '5 '
    '200x80x30x2'

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    refs = ['CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR200x80x30x2 - CR  ']
     
    refs = cellstr(refs);
     
    refs = cellfun(@(x) strrep(x, ' - CR', ''), refs, 'uniformoutput', false);
    refs = cellfun(@(x) strrep(x, 'CR', ''), refs, 'uniformoutput', fal

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 63
    Points : 55
    Points
    55
    Par défaut
    Merci , ça fonctionne

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Encore plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    refs = ['CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR230x80x30x2.5 - CR'
    'CR200x80x30x2 - CR  ']
     
    refs = cellstr(refs);
     
    refs = cellfun(@(x) x(3:end-5), refs, 'uniformoutput', false)

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 63
    Points : 55
    Points
    55
    Par défaut
    oui, c'est mieux .
    merci beaucoup

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

Discussions similaires

  1. Utilisation de la fonction paste et quote
    Par noubs dans le forum R
    Réponses: 1
    Dernier message: 22/07/2015, 09h26
  2. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  3. Réponses: 3
    Dernier message: 27/11/2006, 18h00
  4. Inverse de la fonction QUOTE() ?
    Par __fabrice dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/07/2006, 10h39

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