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

Qt Discussion :

Expression régulière avec des slashs


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut Expression régulière avec des slashs
    Bonjour,

    J'ai un string de la sorte :
    Et j'aimerais récupérer les valeurs entre chaque slashs dans des variables :

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    QRegExp qrx;
    QString str = "53/16/1/358/10";
        QString FF, MF, TF, JF, PF ;
        qrx.setPattern("^([^]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$"); // Ne marche pas, je dois oublier quelquchose
        if (qrx.indexIn(str) != -1) {
            FF = qrx.cap(1);
            MF = qrx.cap(2);
            TF = qrx.cap(3);
            JF = qrx.cap(4);
            PF = qrx.cap(5);
        }
    Quelqu'un aurait une idée pour le pattern?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Bonsoir,
    Pourquoi utiliser les expressions régulières pour ça ? Que c'est compliqué !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    QString str = "53/16/1/358/10";
    QString FF, MF, TF, JF, PF;
    QStringList valList = str.split('/');
    if (valList.count() == 5) {
        FF = valList.at(0);
        MF = valList.at(1);
        TF = valList.at(2);
        JF = valList.at(3);
        PF = valList.at(4);
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    Parcequ'en fait la j'ai mis un exemple simple mais normalement ce n'est pas juste un string mais un fichier complet composé de plusieurs blocs de cette forme :

    TST1 52/15/0/000
    AUH SY KA 000001(0x01) TK 01(1) FK 10000(16) MK 110101(53) MKK 0101100110(358) MKL 00000000000010(2)
    SYSTEMINFO (3242 MHZ) details 1p68 92322
    Topaz: 1
    Askli: 1
    Je dois récupérer tout ce que j'ai mis en gras donc il m'a semblé que les RegEx étaient ce qu'il y avait de mieux, enfin je ne sais pas.
    Sinon votre méthode fonctionne bien mais sera t-elle adaptée dans mon cas (bien sûr après modification)?
    En tous cas, merci de votre réponse

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    A mon avis, les regexp sont faites pour valider (matcher), c'est à dire vérifier qu'une chaine respecte bien une règle précise. Par contre pour aller chercher des éléments comme dans ton fichier, je ferais ça à coups de readLine() et de split('...').at(n).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    C'est noté ! Merci beaucoup je vais suivre votre exemple

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

Discussions similaires

  1. Expression régulière avec slash
    Par bernidupont dans le forum Général Java
    Réponses: 4
    Dernier message: 15/01/2014, 18h27
  2. Ecrivez vos expressions régulières avec des mots
    Par FirePrawn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/08/2013, 14h31
  3. Réponses: 2
    Dernier message: 04/10/2010, 21h00
  4. Réponses: 4
    Dernier message: 24/05/2010, 13h15
  5. Expression régulière avec "|"
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/07/2005, 15h09

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