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

R Discussion :

Expression Régulière séparer les éléments par une vigurle ciblé


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut Expression Régulière séparer les éléments par une vigurle ciblé
    Bonjour,

    J'ai une chaîne de caractère de cette forme: "{Alcohol=[1.0,1.5),Nonflavanoid phenols=[1.5,2.0]}" et je voudrais avoir ceci séparement comme cela c("Alcohol=[1.0,1.5)", "Nonflavanoid phenols=[1.5,2.0]")
    (donc séparer les éléments entre la virgule)

    J'ai pensé à utiliser une expression régulière, mais je n'arrive pas à faire la séparation au niveau de la virgule puis qu'il y a aussi une virgule au niveau des nombres.
    Dans ma chaîne de caractère je peux avoir aussi:
    "{A=[X.X,X.X), B=[X.X,X.X], ..., X=[X.X,X.X]}"

    ( Dès fois [X.X,X.X] avec un crochet à la fin ou une parenthèse à la fin [X.X,X.X) )

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > str="{Alcohol=[1.0,1.5),Nonflavanoid phenols=[1.5,2.0]}"
    > strsplit(gsub("(\\)|\\]),","\\1-",str),"-")
    [[1]]
    [1] "{Alcohol=[1.0,1.5)"              "Nonflavanoid phenols=[1.5,2.0]}"
    Dans un premier temps j'utilise gsub pour remplacer les virgules précédées d'un ] ou ) par un autre caractère. Ici j'ai pris "-" mais remplace le par n'importe quel signe que tu es sur de ne pas avoir dans ton string.
    Ensuite strsplit sur ce caractère.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Merci de votre aide

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    un essai en une ligne, strsplit(x, ",(?:(?=[A-z]))", perl = T)cdlt

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

Discussions similaires

  1. [Débutant] séparer les éléments d'une cellule
    Par fahimonasri dans le forum MATLAB
    Réponses: 5
    Dernier message: 20/01/2016, 10h05
  2. Réponses: 2
    Dernier message: 13/12/2013, 12h37
  3. séparer les composants par une ligne
    Par khoukha1 dans le forum Android
    Réponses: 6
    Dernier message: 10/06/2012, 11h02
  4. [Débutant] séparer les éléments d'une matrice
    Par seboututou dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/10/2011, 11h24
  5. Réponses: 15
    Dernier message: 17/10/2006, 12h06

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