Qt6弃用了QRegExp,改为QRegularExpression

原来我们用QRegExp的时候,直接用正则表达式对象去match()一个字符串,看是否返回true,就可以判断该字符串是不是我们想要的格式了。

现在Qt6弃用了原先这个QRegExp,我们就得使用如下代码了:

//判断是否是IP地址
bool Utils::IsIP(QString IP)
{
    QRegularExpression RegExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
    return RegExp.match(IP).hasMatch();
}

这里我们看到正则表达式有三个类:QRegularExpression,QRegularExpressionValidator,QRegularExpressionMatch。

以前一个QRegExp就可以搞定的类,现在多了一个Match类,匹配动作单独分出来了。

从单一职责原则来看,这三个类可以作为样板,以后我们创建类的时候,尽量按照,类信息,类动作,类交互三个角度去思考。

实际上,一开始,可能你创建的类没有什么功能,可能只有一个匹配模式的函数,但是随着后面想法多了,这个类的作用越来越精细,函数不断增多,一开始你把动作都放在信息类之中,慢慢地这个类太大了,臃肿了,所以你需要拆分出来。

这就是架构设计的基本想法。

相关推荐

  1. Qt6QRegExpQRegularExpression

    2024-06-06 10:12:11       33 阅读
  2. QT笔记 - QRegularExpression正则表达式

    2024-06-06 10:12:11       54 阅读
  3. 通俗易懂玩QT:正则表达式 QRegularExpression 学习

    2024-06-06 10:12:11       50 阅读
  4. Qt 6.6.1 修复 400 多个 bug

    2024-06-06 10:12:11       53 阅读
  5. 【笔记】Helm-3 主题-17 的Kubernetes API

    2024-06-06 10:12:11       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 10:12:11       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 10:12:11       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 10:12:11       82 阅读
  4. Python语言-面向对象

    2024-06-06 10:12:11       91 阅读

热门阅读

  1. 在Web应用中如何处理会话跟踪

    2024-06-06 10:12:11       31 阅读
  2. 网络安全实战基础——实战工具与攻防环境介绍

    2024-06-06 10:12:11       34 阅读
  3. linux服务器配置openssl

    2024-06-06 10:12:11       29 阅读
  4. 面向小白的 Spark MLlib 入门教学

    2024-06-06 10:12:11       29 阅读
  5. make 中 DESTDIR 和 --prefix 的区别

    2024-06-06 10:12:11       29 阅读
  6. Web前端三大主流框架深度解析:React, Angular, Vue.js

    2024-06-06 10:12:11       26 阅读