Qt如何使用正则表达式匹配指定字符串

2025-04-20 15:28:38

Qt编程中有时候会需要判断某个字符串是否符合要求,比如判断一个lineEdit中IP地址是否合法,使用正则表达式会使得这个判断操作非常简单。本文以判断IP地址是否合法为例,给大家说明正则表达式的用法。

Qt如何使用正则表达式匹配指定字符串

工具/原料

Qt4

PC

Qt中匹配字符串的用法

1、首先要创建一个QRegExp类型的实例对象。例如要匹配单个数字,则正则表达式可以写成("\\d")。如图第27行初始化了一个QRegExp对象。

Qt如何使用正则表达式匹配指定字符串

2、创建一个QRegExpValidator实例对象,用于执行匹配操作。如图第28行,以正则表达式rx初始化了一个QRegExpValidator实例对象v。

Qt如何使用正则表达式匹配指定字符串

3、调用QRegExpValidator::validate方法,如图第36行,对给定字符串进行匹配,并返回匹配结果:QValidator::Invalid表示完全不匹配;QValidator::Intermediate表示部分匹配;QValidator::Acceptable表示完全匹配。

Qt如何使用正则表达式匹配指定字符串

4、程序执行情况,如下各图所示。

Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串

匹配IP地址

1、IP地址的第一个字段的范围是[1-223],包括1和223。所以正则表达式可以写成"(2{2魈胺闹臣}[0-3]|2[01][0-9]|1[0-9]{2}|[1-9][0-9]|[1-9])"。

Qt如何使用正则表达式匹配指定字符串

2、[1-223]匹配执行情况如下图所示。

Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串

3、IP地址后三个字段的范围是[0-255],包括0和255,所以正则表达式可以写成"(25[0-5]|2[0-4][0-9]|1?[0-9]{0,2})"。

Qt如何使用正则表达式匹配指定字符串

4、[0-255]匹配执行情况如下图所示。

Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串

5、匹配完整IP地址的正则表达式可以写成"((2{2}[0-3]|2[01][0-9]|1[0-9]{2}|0?[1-9][0-9]|0{0,2}[1-9])\\.)((25[0-5]|2[0-4][0-9]|[01]?[0-9]{0,2})\\.){2}(25[0-5]|2[0-4][0-9]|[01]?[0-9]{0,2})"。

Qt如何使用正则表达式匹配指定字符串

6、完整IP地址匹配执行情况如下图所示。

Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串
Qt如何使用正则表达式匹配指定字符串

7、此示例代码可在我的网盘下载。链接:https://pan.baidu.com/s/1mBClqRG_BbyQPYbfcQxFzQ 提取码:ocfm

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢