Qt正则表达式
喜欢官方术语的可以直接参考官方文档(助手Assistant里搜索QRegExp)
下面只介绍 QRegularExpression(与QRegularExpressionMatchIterator配合使用),官方推荐QRegularExpression,注意正则表达要加小括号,而QRegExp不用。
以下按理解列出常用的几个:
+,“连续的”,如果只单个满足就输出单个,如果相邻的也满足那就一起输出
{n},连续的n个
{n,},连续的至少n个
{n,m},连续的n至m个
\\d,单个数字【\\D大写则取反,即单个非数字,下同】
\\w,单个字符(字母、下滑杠、数字)
\\s,单个空格
[0-9a-zA-Z],单个数字、大小写字母【方括号里加^则取反,下同。如[^0-9]非数字】
[\u4e00-\u9fa5],单个中文
【代码】
#include <QCoreApplication> #include <QRegularExpression> //引入头文件 #include <QDebug> #pragma execution_character_set("utf-8") //防止中文乱码 int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QRegularExpression re; //re.setPattern("(\\d+)"); //连续的数字 //re.setPattern("(\\d{4})"); //连续的4个数字 //re.setPattern("(\\w+)"); //连续的字符(字母、下滑杠、数字) //re.setPattern("(\\s+)"); //连续的空格 //re.setPattern("([\u4e00-\u9fa5]+)"); //连续的中文 re.setPattern("([^A-Z]+)"); //连续的非大写字母 QRegularExpressionMatchIterator i=re.globalMatch("中文aBC_123 def 2023/03/07"); QStringList words; while(i.hasNext()) { QRegularExpressionMatch match=i.next(); QString word=match.captured(1); words<<word; qDebug()<<word; } //指定要匹配的单词 //re.setPattern("Qt"); //具体单词,忽略大小写。如qt、qT等 //re.setPatternOptions(QRegularExpression::CaseInsensitiveOption); return a.exec(); }
【值得一看的参考】
Qt扫盲-QRegularExpression 正则匹配总结_太阳风暴的博客-CSDN博客
常用数字与字母的正则表达式 - XQYEAH - 博客园 (cnblogs.com)
QRegexp、QRegularExpression的用法学习 - 灰信网(软件开发博客聚合) (freesion.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具