Qt学习笔记(9)——正则表达式的使用

我在这里建立 的是一个Qt控制台应用程序,程序代码如下所示:

 #include <QCoreApplication>#include <QRegExp>
#include <QDebug>

void Regexps()
{
    QRegExp rx("^\\d\\d?$"); /*两字符必须为数字,第二个字符可以没有*/
    qDebug() << rx.indexIn("a1");
    qDebug() << rx.indexIn("5");
    qDebug() << rx.indexIn("5b");
    qDebug() << rx.indexIn("12");
    qDebug() << rx.indexIn("123");
    qDebug() << "**************";

    rx.setPattern("\\b(email|letter)\\b"); //匹配email和letter单词
    qDebug() << rx.indexIn("emailletter");
    qDebug() << rx.indexIn("my email");
    qDebug() << rx.indexIn("my eamil letter");
    qDebug() << "**************";

    rx.setPattern("M(?!ail)");//匹配字符M,其后面不能跟有ail字符
    QString str1 = "this is M";
    str1.replace(rx,"Mail");
    qDebug() << "str1=" <<str1;
    QString str2 = "my M,your Ms,his Mail";
    str2.replace(rx,"Mail");
    qDebug() << "str2=" <<str2;
    qDebug() << "**************";

    QString str3 = "One Eric another Eirik,and an Ericsson."
    "How many Eiriks,Eric?";
    qDebug() <<str3;
    QRegExp rx2("\\bEi? ri[ck]\\b");  //匹配Eric或者Eirik
    int pos =0;
    int count =0;
    while (pos>=0) {
        pos = rx2.indexIn(str3,pos);
        if(pos >= 0)
        {
            ++pos;
            ++count;
        }
    }
    qDebug() <<count;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Regexps();
    
    return a.exec();
}

你可能感兴趣的:(正则表达式)