Bonjour à tous !

C’est la fête, j’enchaîne !

Je cherche à repérer une chaîne. Voici le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <QString>
#include <QTextStream>
#include <QRegExp>
#include <QTextCodec>
 
QString remplace (QString aRemplacer, QString remplacerPar, QString texte)
{
    QTextStream cout(stdout, QIODevice::WriteOnly);
    QRegExp regex (aRemplacer);
    if(texte.contains(regex)) {
        texte = texte.replace(aRemplacer, remplacerPar);
        cout << aRemplacer << " trouve ! " << texte << "\n";
    }
    return texte;
}
 
int main () {
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QTextStream cout(stdout, QIODevice::WriteOnly);
 
    QString t;
    t = remplace("\\did", "TTT", "Il dit \\did{haut} à");
    cout << t;
}
Ce code fonctionne dans la majeure partie des cas, mais si je mets ce que j’ai mis là, à savoir \\did, ça veut pas, il ne "trouve" pas. \\oe, oui, \\yt, oui, mais \\did, non ! et \\il non plus !
Alors je ne comprends pas du tout pourquoi certaines chaînes sont refusées, et d’autres pas.
Merci d’avance pour votre aide !