zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【QT】QT正则表达式

2023-09-27 14:25:56 时间
QT正则表达式

正则表达式即一个文本匹配字符串的一种模式。Qt中QRegExp类实现使用正则表达式进行模式匹配,且完全支持Unicode,主要应用:字符串验证、搜索、查找替换、分割。

正则表达式中字符及字符集

正则表达式中的量词

image-20220124111743871

正则表达式中的断言

image-20220124112005197

QRegExp支持通配符

image-20220124112047375

示例:

 //完整匹配

 QRegExp reg("a");

 qDebug() reg.exactMatch("a");

 //任意个数字+两个非数字

 QRegExp reg0("\\d*\\D{2}");

 qDebug() reg0.exactMatch("123ab");

 //使用通配符匹配

 QRegExp rx("*.txt");

 //设置匹配语法

 rx.setPatternSyntax(QRegExp::Wildcard);//支持通配符

 qDebug() rx.exactMatch("123.txt");

 //匹配单词边界

 QRegExp reg1;

 //设置匹配模式

 reg1.setPattern("\\b(hello|Hello)\\b");

 qDebug() reg1.indexIn("Hello everyone.");//返回起始下标

 //捕获匹配的文本

 //由(?:开始。)结束

 QRegExp regHight("(\\d+)(?:\\s*)(cm|inchi)");

 qDebug() regHight.indexIn("Mr.WM 170cm");

 qDebug() regHight.cap(0);//完整

 qDebug() regHight.cap(1);//第一部分

 //断言?!

 QRegExp reg2;

 reg2.setPattern("面(?!包)");//面后面不是包才匹配成功

 QString str ="我爱吃面食,面包也行吧。";

 str.replace(reg2,"米");//我爱吃米食,面包也行吧

 qDebug() str;

 //Qt5引入了新的类

 QRegularExpression regExp("hello");

 //结果QRegularExpressionMatch(Valid, has match: 0:(0, 5, "hello")

 qDebug() regExp.match("hello world");

 regExp.setPattern("[A-Z]{3,8}");

 //设置匹配模式-大小写不敏感

 regExp.setPatternOptions(QRegularExpression::CaseInsensitiveOption);

 qDebug() regExp.match("hello");

 QRegularExpression reDate("^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$");//日期

 QRegularExpressionMatch match0 = reDate.match("01/24/2022");

 QString strMatch = match0.captured(0);

 qDebug() strMatch;

 qDebug() match0;

 QString sPattern;

 sPattern = "^(Jan|Feb|Mar|Apr|May) \\d\\d \\d\\d\\d\\d$";

 QRegularExpression rDate1(sPattern);

 QString ss("Apr 01");

 QRegularExpressionMatch match2;

 match2 = rDate1.match(ss,0,QRegularExpression::PartialPreferCompleteMatch); //部分匹配

 qDebug() match2.hasMatch();//完整匹配

 qDebug() match2.hasPartialMatch();//部分匹配

 qDebug() match2;

Qt QStandardItemModel(1.超级详细用法) 本文详细的介绍了TextEdit控件的各种操作,例如:获取内容、输入控件字符、保持在最后一行添加(自动滚屏)、定时关闭、添加数据换行、向鼠标位置插入一行字符、设置字体颜色属性等操作。 本系列QT全面详解文章目前共有十五篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。
QFuture 表示异步计算的结果,QFutureWatcher 则允许使用信号和槽监视 QFuture,也就是说,QFutureWatcher 是为 QFuture 而生的。
QFuture 允许线程与一个或多个结果同步,这些结果将在稍后的时间点准备就绪,该结果可以是具有默认构造函数和拷贝构造函数的任何类型。如果一个结果在调用 result()、resultAt() 或 results() 函数时不可用,QFutur
Qt 的主事件循环(QCoreApplication::exec())从事件队列中获取本地窗口系统事件,将它们转化为 QEvents,然后将转换后的事件发送给 QObjects。 一般来说,事件来自底层窗口系统(spontaneous() 返回 true),但也可以使用 QCoreApplication:
虽然QLocalSocket是一个事件循环使用而设计,它也可以不被如此使用。这种情况下,必须使用 waitF