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)

【入门】正则表达式基础入门笔记_\x0b_林柒Sevenlin的博客-CSDN博客

【QT小记】QT中正则表达式QRegularExpression的基本使用_林柒Sevenlin的博客-CSDN博客

posted @ 2023-03-03 18:27  夕西行  阅读(738)  评论(0编辑  收藏  举报