Qt6弃用了QRegExp,改为QRegularExpression

Qt6中弃用了QRegExp,推荐使用QRegularExpression进行正则匹配。现在需要通过QRegularExpressionMatch来判断匹配情况,如示例所示用于检查IP地址的合法性。这种改动遵循了单一职责原则,将匹配动作独立出来,提示我们在设计类时应考虑信息、动作和交互的分离,以便于维护和扩展。
摘要由CSDN通过智能技术生成

原来我们用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类,匹配动作单独分出来了。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神之媛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值