Qt中正则表达式的常见用法(QRegularExpression类).docx
第
Qt中正则表达式的常见用法(QRegularExpression类)
目录一.基本功能介绍:1.创建正则表达式对象:2.匹配字符串:3.捕获匹配的内容:4.替换匹配的内容:5.检测是否匹配:6.使用捕获组:二.写法介绍2.1:匹配的示例2.2:相关符号介绍三.复杂样例分析附:Qt正则表达式(匹配正数、负数、浮点数)总结
一.基本功能介绍:
在Qt中,可以使用QRegularExpression类来处理正则表达式。以下是一些常用的正则表达式用法:
1.创建正则表达式对象:
QRegularExpressionregex(pattern);
2.匹配字符串:
QStringstr=Hello,World!;
if(regex.match(str).hasMatch()){
qDebug()Matchfound!;
}else{
qDebug()Nomatchfound!;
}
3.捕获匹配的内容:
QRegularExpressionMatchmatch=regex.match(str);
if(match.hasMatch()){
qDebug()Capturedtext:match.captured();
}
4.替换匹配的内容:
QStringreplacedStr=regex.replace(str,replacement);
5.检测是否匹配:
if(regex.isValid()){
qDebug()Validregexpattern!;
}else{
qDebug()Invalidregexpattern!;
}
6.使用捕获组:
QRegularExpressionregex((\\d+):(\\w+));
QStringstr=123:abc;
QRegularExpressionMatchmatch=regex.match(str);
if(match.hasMatch()){
qDebug()Number:match.captured(1);
qDebug()Text:match.captured(2);
}
二.写法介绍
2.1:匹配的示例
当使用正则表达式时,可以根据具体的需求和匹配规则来编写不同的正则表达式模式。以下是一些常见的正则表达式写法示例:
匹配数字:\d+
示例:匹配一个或多个数字,例如:123,4567等。
匹配字母:[a-zA-Z]+
示例:匹配一个或多个字母,不区分大小写,例如:abc,XYZ等。
匹配邮箱地址:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b
示例:匹配常见的邮箱地址格式,例如:example@,test123@等。
匹配URL:(http|https)://([\w-]+.)+[\w-]+(/[\w-./%=]*)
示例:匹配常见的URL格式,例如:,/page1等。
匹配手机号码:1\d{10}
示例:匹配中国大陆手机号码格式,以1开头,共11位数字,例如:,等。
2.2:相关符号介绍
在正则表达式中,*、、+、{n}等符号被称为量词,用于指定匹配模式中前面字符的重复次数或出现情况。下面详细介绍一些常用的量词及其作用:
*(星号):表示匹配前面的字符零次或多次。
示例:ab*可以匹配a,ab,abb,abbb等。
+(加号):表示匹配前面的字符至少一次或多次。
示例:ab+可以匹配ab,abb,abbb等,但不能匹配a。
(问号):表示匹配前面的字符零次或一次,即可选匹配。
示例:ab可以匹配a,ab,但不能匹配abb。
{n}:表示匹配前面的字符恰好n次。
示例:a{3}可以匹配aaa,但不能匹配aa或aaaa。
{n,}:表示匹配前面的字符至少n次。
示例:a{2,}可以匹配aa,aaa,aaaa等。
{n,m}:表示匹配前面的字符至少n次,最多m次。
示例:a{2,4}可以匹配aa,aaa,aaaa,但不能匹配a或aaaaa。
这些量词可以用于控制匹配模式中字符重复次数的范围,使得正则表达式更加灵活和精确。在实际应用中,根据具体的匹配需求和规则,可以灵活运用这些量词来