zl程序教程

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

当前栏目

Qt算法和正则表达式

2023-09-14 09:05:11 时间

1、QT5 常用算法

 

2、基本的正则表达式

使用正则表达式可以方便地完成处理字符串的一些操作,如验证、查找、替换和分割等。Qt的QRegExp类是正则表达式的表示类,它基于Perl的正则表达式语言,完全支持Unicode.

正则表达式由表达式、量词和断言组成。

(1)、最简单的表达式是一个字符。字符集可以使用表达式如"[AEIOU]",表示匹配所有的大学元音字母;使用"[ ^ AEIOU]",表示匹配所有的非元音字母,即辅音字母;连续的字符集可以使用表达式如"[a-z]",表示匹配所有的小写英文字母。

(2)、量词说明表达式出现的次数,如"x[1,2]",表示“x”可以至少有一个,至多有两个。

在计算机语言中,标识符通常要求一字母或下划线开头,后面可以说字母、数字和下划线。满足条件的标识符表示为:​​[A-Za-z]+[A-Za-z_0-9]*​​

其中,表达式中的"+“表示”[A-Za-z]“至少出现一次,可以出现多次;”*"表示[A-Za-z_0-9]可以出现零次或多次。

正则表达式的表达式如下:

 

例如:[A-Za-z_0-9]匹配字母数字和下划线;[ ^a-z]匹配除小写字母外的所有所有字符

正则表达式的量词如下:

 

例如:\b[A-Z]+[a-z_0-9]{,3}\b匹配大写字母开头一个或多个,然后最多3个小写字母或下划线或数字

正则表达式的断言如下:

 

例如:^ [abc] [0-9]$匹配以abc中任意一个开头,数字结尾的字符串

元字符如下:

 

\ba\w*\b:匹配以字母a开头的单词(\ba),然后是任意数量的字母或数字(\w *),最后是单词结束处(\b)。

\b\w{6}\b:匹配刚好6个字符的单词。

3、在QT中使用正则表达式

#include<QRegExp>
#include<QRegExpValidator>

QRegExp regexp("[A-Za-z][0-9][1-9]{0,2}");
//匹配第一个为字母,第二个为数字,接下来的0-2个为非零数字
ui->lineEdit->setValidator(new QRegExpValidator(regexp,this));

ui->okButton->setEnable(ui->lineEdit->hasAcceptableInput());

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓