Qt中正则表达式基本用法1(QRegularExpression和QRegularExpressionMatch用法)

本文主要总结Qt中正则表达式的简单用法,其中Qt中正则表达式有两个常用类QRegularExpressionQRegularExpressionMatch

其中类QRegularExpression的对象re可以表示正则表达式规则,正则表达式的规则和语法介绍可以参考这篇博客:https://blog.csdn.net/scgaliguodong123_/article/details/45363409;用QRegularExpression::match(QString)函数可以匹配正则表达式语法规定的字符串,结果存入类QRegularExpressionMatch的对象match中。

QRegularExpressionMatch的对象match接收re匹配后的结果,可以用QRegularExpressionMatch::captured(0)输出。

 

1.1具体示例代码如下所示

#include <QRegularExpression>
#include <QRegularExpressionMatch>

void Widget::on_pushButton_5_clicked()
{
    //匹配字符串中连续两位数字后面跟着一串字母,遇到空格截止
    QRegularExpression re("\\d{3}([a-z]+|[A-Z]+)");
    QRegularExpressionMatch match=re.match("abc123 def abc123def abc123 def");
    if(match.hasMatch())
    {
        QString matched = match.captured(0);
        qDebug()<<matched;
    }
}

 

1.2正则表达式详解

\\d{3}:\\d表示转义字符,因为C++用\\表示实际的\,即\\d表示整数,后面的{3}表示目的字符串有连续的三个整数,比如123。

[a-z]+:表示匹配中括号里面小写字母a-z的任意一个字母,后面的+号表示要查找的字符串至少出现一个小写字母。

[A-Z]+:表示匹配中括号里面大写字母A-Z的任意一个字母,后面的+号表示要查找的字符串至少出现一个大写字母。

():([a-z]+[A-Z]+)中的括号()表示是一个整体,则正表达式将该整体标为序号1。

所以\\d{3}([a-z]+[A-Z]+)表示查找目的字符串中起始为连续的三个整数后面跟着一串任意大小写字母,比如123aHkjHU。

 

1.3结果如下图所示

 

 

参考内容:

https://blog.csdn.net/scgaliguodong123_/article/details/45363409(参考:QRegularExpression用法)

https://doc.qt.io/qt-5/qregularexpression.html(参考:qt官方文档QRegularExpression用法和示例)

https://blog.csdn.net/scgaliguodong123_/article/details/45363409(参考:正则表达式语法详细讲解)

  • 14
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,我们需要使用QSettings类来读取ini文件的内容。QSettings类提供了一个方便的接口来访问系统注册表、ini文件和其他平台相关位置的设置。 然后,我们可以使用QRegularExpression类将正则表达式字符串转换为QRegularExpression对象,并使用toJson()函数将其转换为JSON格式的字符串。 下面是一个示例代码,可以将ini文件正则表达式转换为JSON格式: ```cpp #include <QCoreApplication> #include <QDebug> #include <QSettings> #include <QRegularExpression> #include <QJsonObject> #include <QJsonDocument> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSettings settings("config.ini", QSettings::IniFormat); QString regExpString = settings.value("RegExp").toString(); QRegularExpression regExp(regExpString); QJsonObject jsonObj; jsonObj["pattern"] = regExp.pattern(); jsonObj["caseSensitivity"] = regExp.caseSensitivity(); jsonObj["minimal"] = regExp.isMinimal(); QJsonDocument jsonDoc(jsonObj); QString jsonString = QString::fromUtf8(jsonDoc.toJson()); qDebug() << "JSON string:" << jsonString; return a.exec(); } ``` 在上面的代码,我们首先使用QSettings类读取名为“RegExp”的键的值,该键包含正则表达式字符串。然后,我们使用QRegularExpression类将字符串转换为QRegularExpression对象,并将其转换为JSON格式的QJsonObject对象。最后,我们将QJsonObject对象转换为JSON格式的字符串,并将其打印到控制台上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值