QT:利用正则表达式查找文本

来源:互联网 发布:ubuntu安装wifi驱动 编辑:程序博客网 时间:2024/05/22 15:35
几个G大的word2007竟然不支持用正则表达式查找文本,汗。。。
唉,只好自己来写了一个了(幸亏这个程序不是很难,呵呵)

不说了,直接上代码.


#include <QtCore>//要使用的正则表达式const QString PATTERN_STRING = "a.*a";//QRegExp::cap的参数const int NTH = 0;int main(int argc, char **argv){QCoreApplication app(argc, argv);QTextStream cout(stdout);  //为了代码简洁,这里就不给出错误处理的代码了,//但在真正的程序中,错误处理是不可少的//输入文件:存储要查找的文本QFile inputFile("input.txt");inputFile.open(QIODevice::ReadOnly);QTextStream in(&inputFile);//输出文件:存储查找结果QFile outputFile("output.txt");outputFile.open(QIODevice::WriteOnly);QTextStream out(&outputFile);QString txtStr = in.readAll();//如果要区分大小写,就把下面这句话删掉txtStr.toLower();QRegExp regExp;int pos, result;pos = result = 0;regExp.setPattern(PATTERN_STRING);//将匹配设置为最小(短)匹配regExp.setMinimal(true);//开始匹配while ((pos = regExp.indexIn(txtStr, pos)) != -1){QString str = regExp.cap(NTH);out << str << endl;pos += regExp.matchedLength();result++;}cout << result << " results" << endl;inputFile.close();outputFile.close();return 0;}


原创粉丝点击