博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[QT]构建正则表达式测试
阅读量:5108 次
发布时间:2019-06-13

本文共 2266 字,大约阅读时间需要 7 分钟。

正则表达式是个强大的东西

暂时先记录一个用法:

QString str = "Peak memory: KEY s";

QString data = "Peak memory: 24.1 s";

 

需要构建一个可以匹配 data 的正则表达式,模板为 str ,其中KEY代表需要提取的数据。

PS: 需要注意的是 生成表达式中各种空格时候 \\ 的用法,什么时候用一个,什么时候用2个或者4个,搞错了的话就不会进入if条件语句了。

#include 
#include
#include
#include
#include
using namespace std;void generateReg(const QString &data, const QString &str){ Q_ASSERT(str != NULL && "Wrong input"); QString dst = str.trimmed(); // generate reg expression dst.replace(QRegExp("\\s+"), "(\?\:\\s+)"); dst.replace("KEY", "([1-9]+\\.{,1}[0-9]*)"); //dst = "Peak memory:(?:\\s+)([1-9]+\\.{,1}[0-9]*)(?:\\s+)s"; cout << "The reg pattern should be: " << "Peak memory:(?:\\s+)([1-9]+\\.{,1}[0-9]*)(?:\\s+)s" << endl; cout << "The dst String: " << dst.toStdString() << endl; QRegExp rx(dst); int pos = data.indexOf(rx); if (pos > -1) { cout << endl << "RegExp worked:)" << endl; QStringList capedStr = rx.capturedTexts(); qDebug() << capedStr; }}int main(int argc, char *argv[]){ QApplication a(argc, argv); QString str = "Peak memory: KEY s"; QString data = "Peak memory: 241 s"; generateReg(data, str); return a.exec();}

  结果如下:

 

[突然想起有的地方代码可能看不到,还是贴着文本格式备用]

// 突然想起有可能看不了图片

#include <QApplication>
#include <QtGui>
#include <QLabel>
#include <QString>

#include <iostream>

using namespace std;

void generateReg(const QString &data, const QString &str)

{
Q_ASSERT(str != NULL && "Wrong input");

QString dst = str.trimmed();

// generate reg expression
dst.replace(QRegExp("\\s+"), "(\?\:\\s+)");
dst.replace("KEY", "([1-9]+\\.{,1}[0-9]*)");

//dst = "Peak memory:(?:\\s+)([1-9]+\\.{,1}[0-9]*)(?:\\s+)s";

cout << "The reg pattern should be: " << "Peak memory:(?:\\s+)([1-9]+\\.{,1}[0-9]*)(?:\\s+)s" << endl;
cout << "The dst String: " << dst.toStdString() << endl;

QRegExp rx(dst);

int pos = data.indexOf(rx);
if (pos > -1)
{
cout << endl << "RegExp worked:)" << endl;
QStringList capedStr = rx.capturedTexts();
qDebug() << capedStr;
}
}

int main(int argc, char *argv[])

{
QApplication a(argc, argv);

QString str = "Peak memory: KEY s";

QString data = "Peak memory: 241 s";
generateReg(data, str);

return a.exec();

}

转载于:https://www.cnblogs.com/dawnWind/p/QT_01.html

你可能感兴趣的文章
HDU 5340——Three Palindromes——————【manacher处理回文串】
查看>>
二叉树的下一个节点
查看>>
Nginx配置文件详细说明
查看>>
遇到的Mysql的一个坑
查看>>
AC日记——「HNOI2017」单旋 LiBreOJ 2018
查看>>
vue总结
查看>>
真机调试的准备工作介绍
查看>>
(笔记)Linux内核学习(十一)之I/O层和I/O调度机制
查看>>
IIS注册 net环境
查看>>
P1242 新汉诺塔
查看>>
页面元素解绑click事件
查看>>
数据移植实验
查看>>
输入任意个数字求和的小程序
查看>>
How Many Tables
查看>>
Linux下静态链接库的制作与使用
查看>>
Swift4 函数,例子代码
查看>>
012 内置锁和synchronized
查看>>
大型网站系统架构系列:负载均衡详解(二)
查看>>
Linux学习——ssh对称加密和非对称加密
查看>>
c# new的三种用法
查看>>