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

Discussion :

Expressions régulières - extraire le mot complet qui suit un lexème

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Par défaut Expressions régulières - extraire le mot complet qui suit un lexème
    Bonjour.
    En parcourant un fichier texte, je suis capable d'extraire les lignes qui m’intéressent une par une.
    Mon problème maintenant est de récupérer un mot complet commençant après le premier caractère qui suit la fin du premier token de recherche ( dans cette ligne ) et se terminant au dernier caractère qui précède le deuxième token ( dans cette même ligne.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    QString s_ville; //  "PERPIGNAN code=perpignan-id20040 ville=PERPIGNAN"
    QString s_first_pattern_string; // "code="
    QString s_second_pattern_string; // " "
    QString *s_return_code; // "perpignan-id20040"
     
    QRegularExpression re1(s_first_pattern_string);
    QRegularExpression re2(s_second_pattern_string);
     
    MY_QRegularExpressionMatch(s_ville, re1, re2, s_return_code);
    qDebug() << "le code trouvé est :  " << &s_return_code << endl;
    Resultat :      le code trouvé est : perpignan-id20040
    Une aide est la bien venue

  2. #2
    Membre averti
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Par défaut Expressions régulières - extraire le mot complet qui suit un token
    Après longue recherche sur internet :

    s_ville est la ligne courante de type QString et contient le texte :
    "PERPIGNAN code=perpignan-id20040 ville=PERPIGNAN"
    s_return_code est le code de la ville recherché et contient
    perpignan-id20040
    "code=(.+)\\s" remplace à la fois QString s_first_pattern_string ["code="] et
    QString s_second_pattern_string [" "]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            QRegularExpression re("code=(.+)\\s");
            QRegularExpressionMatch match = re.match(s_ville);
            hasMatch = match.hasMatch(); // true
            if(hasMatch){
               s_return_code = match.captured(1);
               ..............
     //              Tache a acomplir
               ..............
            }

  3. #3
    Membre averti
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Par défaut
    Bonjour.

    Depuis le site unix.com
    Originally Posted by CarloM
    Rather than using (.+) to match any character, try using ([^\\s]+) to match non-whitespace characters (as in the earlier sed suggestions).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QRegularExpression re1("code=(.+)\\s");
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QRegularExpression re1("code=([^\\s]+)");

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/07/2012, 10h13
  2. Expressions régulières - extraire
    Par prorace dans le forum C#
    Réponses: 6
    Dernier message: 17/02/2011, 11h55
  3. Expression Régulière séparation de mots majuscule
    Par orfaon dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2010, 14h49
  4. expression régulière : supprimer un mot et tous ce qui le suit
    Par Invité dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/04/2008, 12h00
  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