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 :

QRegExp et expressions rationnelles

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut QRegExp et expressions rationnelles
    Bonjour,

    Je développe actuellement un petit programme en C++ sous Qt et je dois contrôler une entrée utilisateur et la "nettoyer" de certains caractères au besoin.

    Dans la première version où je ne souhaitais conserver que les chiffres, ceci fonctionnait parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString texteNettoye = texte.replace(QRegExp("[\\D]"),NULL);
    Maintenant, je veux conserver les caractères suivants :
    - toujours les chiffres de 0 à 9.
    - la lettre "p".
    - les symboles suivants : < > | et l'espace

    Littéralement, ça devrait donner quelque chose du genre "je veux remplacer tout les caractères non décimaux, sauf p, <, >, | et l'espace, pas rien".

    Mon problème, c'est que je n'arrive pas à traduire ce que je veux à l'aide des expressions rationnelles ni à combiner ces expressions entre elles.

    Quelqu'un pourrais me débloquer sur le sujet ?

    Merci d'avance.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Ceci devrait déjà résorber une partie de l'épine : http://shugo.developpez.com/tutoriels/regexqt/. N'oublie pas cette belle citation :

    Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
    QString dispose de pas mal de méthodes pour remplacer des caractères uniques, ça sera probablement plus lisible : http://qt.developpez.com/doc/4.7/qstring/#replace.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ça y est, j'ai réussi à arriver à mes fins. Voilà ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    texte.remove(QChar('s'));
    texte.replace(QChar(' '),QChar('s'));
    QString texteNettoye = texte.remove(QRegExp("[^\\d|^<|^>|^p|^s|^|]"));
    note : j'ai un peu bricolé pour l'espace.

    Merci.

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

Discussions similaires

  1. [RegEx] Expression rationnelle
    Par Shadow aok dans le forum Langage
    Réponses: 15
    Dernier message: 28/12/2005, 17h29
  2. Non ambiguïté d'expressions rationnelles
    Par David.Schris dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 27/12/2005, 16h11
  3. [RegEx] Images et expression rationnelle
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 30/10/2005, 15h50
  4. Réponses: 2
    Dernier message: 21/02/2005, 10h42
  5. [langage] Expressions rationnelles (perl/C)
    Par ma2th dans le forum Langage
    Réponses: 11
    Dernier message: 02/08/2004, 18h07

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