Qt正则表达式运用---QRegExp

文章目录

  • 1.匹配数字
    • 1.1个位数
    • 1.2两位数 及多位数
    • 1.3 匹配非数字
  • 匹配单词

1.匹配数字

1.1个位数

    QString str= "0 1 2 23  10 20 ¥24 #0 @44 111 22- 123 58 99   ";QRegExp rx("\\b\\d{1}\\b");int index=0;while(rx.indexIn(str,index) != -1){index = str.indexOf(rx.cap(),index) + rx.matchedLength();qDebug()<<rx.cap()<<"index="<<index<<"len"<<rx.matchedLength();}

执行结果

"0" index= 1 len 1
"1" index= 3 len 1
"2" index= 5 len 1
"0" index= 12 len 1
"0" index= 15 len 1
"0" index= 22 len 1

这个方法有个弊端就是 10 20 这种两位数里面的0 也会被匹配出来,这个我也不知道是为什么?特殊情况特殊处理就行了。
但是如果是写成 QRegExp rx("^\\d{1}$");形式就可以精准匹配“0”.“1”,“2”,“3”…"9"的字符串了,不会匹配“10”里面的0了。

1.2两位数 及多位数

	str="0 1 2 23 01 10 20 ¥24 #0 @44 111 22- 123 58 99   "QRegExp rx("\\b\\d{2}\\b");

这个可以匹配两位数字
输出如下:

"23" index= 8 len 2
"01" index= 11 len 2
"10" index= 14 len 2
"20" index= 17 len 2
"24" index= 21 len 2
"44" index= 28 len 2
"11" index= 31 len 2
"22" index= 35 len 2
"12" index= 39 len 2
"58" index= 43 len 2
"99" index= 46 len 2

如果想匹配出两位数10 -99 的数 可以这样写 QRegExp rx("\\b[1-9][0-9]\\b");
如果想匹配 1-99的数 可以写成QRegExp rx("\\b[1-9][0-9]?\\b");这个表示第一个数字是1到九之间的,第二个数字是零到九之间的,问号表示第二个数字可以有也可以没有。
如果想匹配出 10-999的数:可以写成QRegExp rx("\\b[1-9]\\d\\d?\\b");这里的\d表示的就是[0-9]中的一个数
匹配多位数 QRegExp rx("\\b[1-9]\\d{n}\\b");n=1:匹配两位数,n=2:匹配三位数,n=3:匹配四位数。

1.3 匹配非数字

QString str= "0 1 2 23  10 20 ¥24 #0 @44 111 22- 123 58 99   ";
QRegExp rx1("[^0-9]");
QRegExp rx2("[^0-9|\\s]");

rx1就可以匹配出非数字的符号,[^0-9]:表示不匹配0-9的数字。rx2可以匹配出除了数字和空格以外的字符。

匹配单词

QString str = "Hello world! This is a sample text.";
QRegExp rx("\\b\\w+\\b");
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {qDebug() << rx.cap(0);pos += rx.matchedLength();
}

输出

"Hello"
"world"
"This"
"is"
"a"
"sample"
"text"

用法都差不多,主要是具体情况具体处理,后续再完善…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化

全场景智能终端主板AIoT-3588A推出的智能化垃圾回收项目&#xff0c;旨在解决城市化进程中日益突出的垃圾处理问题。智能垃圾分类箱具备触屏操作、自动称重、分类投放以及电子语音播报提示等多项功能&#xff0c;居民能够经过分类积分卡、手机扫码、人脸识别等多种途径进行投放…

【小笔记】streamlit使用笔记

【小笔记】streamlit使用笔记 1.streamlit是什么&#xff0c;为什么要用它&#xff1f; 一句话&#xff0c;这个东西是一个python的可视化库&#xff0c;当你想要给你的程序添加个web界面&#xff0c;而又不会或不想用前端技术时&#xff0c;你就可以考虑用它。 类似的可视化库…

uni-app(四):原生插件开发(Android)

原生插件开发 原生插件开发module1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 component1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 原生插件开发 主要分为两类扩展: Module:…

1378:最短路径(shopth)

【解题思路】 本题图中可能存在负权边&#xff0c;因此不能用dijkstra算法。可以使用spfa算法。本题顶点数最大为80&#xff0c;可以使用复杂度为O(V^3)的floyd算法。输入处理&#xff1a;使用scanf来输入。如果正确输入一个数字&#xff0c;scanf返回1。如果遇到’-&#xff…

EfficientNet网络结构详细解读+SE注意力机制+pytorch框架复现

文章目录 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 网络详细结构1.1 &#x1f393; MBConv结构1.2 ✨SE注意力机制模块1.3 ⭐️Depthwise Separable Convolution深度可分离卷积1.3.1 普通卷积操作(Convolution)1.3.2 逐深度卷积&#xff08;Depthwise Convoluti…

西班牙怎么注册公司呢

西班牙&#xff0c;是位于欧洲西南部的君主立宪制国家&#xff0c;与葡萄牙同处于伊比利亚半岛&#xff0c;东北部与法国及安道尔接壤。西班牙的制造业、旅游业发达。西班牙是世界最大的造船国之一&#xff0c;也是最大的汽车生产国之一。西班牙鼓励外商投资&#xff0c;对小微…

C++单例模式(三种方式)

单例模式实现要点&#xff1a; 构造函数私有化 - 为避免其他程序过多建立该类对象&#xff0c;先禁止其他程序建立该类对象类中创建一个本类对象 - 本类中自定义对象&#xff0c;让其他程序可以访问提供方法获取到该对象 - 方便其他程序对自定义对象的访问 单例模式实现方式&a…

Java并发编程——相关基础概念

Java并发编程是Java中处理多个任务同时执行的能力。在构建高性能、可扩展和响应性良好的系统时&#xff0c;并发编程是非常关键的。以下是Java并发编程中的一些基础概念&#xff1a; 线程&#xff08;Thread&#xff09;&#xff1a; 线程是操作系统调度的最小单位&#xff0c;…

【强训笔记】day21

NO.1 思路&#xff1a;第一个位置放最小的&#xff0c;其次放最大的&#xff0c;依次类推。 代码实现&#xff1a; #include<iostream>using namespace std; int n;int main() {cin>>n;int left1,rightn;while(left<right){cout<<left<<" &…

Nios-II编程

文章目录 一硬件部分设计1Qsys2Quartus 二软件1Nios-II Eclipse 三运行项目及效果1配置 FPGA 一硬件部分设计 1Qsys 1创建一个项目 2点击 Tools 下拉菜单下的 Platform Designer 工具&#xff0c;启动 Platform Designer 后&#xff0c;点击 File-save&#xff0c;在文件名中…

2024年华为OD机试真题- 求字符串中所有整数的最小和-Java-OD统一考试(C卷D卷)

题目描述: 输入字符串s,输出s中包含所有整数的最小和 说明 1. 字符串s,只包含 a-z A-Z +- ; 2. 合法的整数包括 1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102 2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023 输入描述: 包含…

云原生基础设施和操作系统分论坛 03-在Kubernetes上运行Apache Spark进行大规模数据处理的实践【数据分析】

https://spark.apache.org/视频观看&#xff1a;https://www.bilibili.com/video/BV17J4m1n7Gv/?spm_id_from333.999.0.0 简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop…

SpringBoot项目中基于PDF模板生成PDF文档

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f525; 微…

kong 网关 docker 安装3.4

kong 安装 docker network create kong-net安装postgres 9.6 本版很重要 高版本 安装konga 初始化会有问题 docker run -d --name kong-database \--network=kong-net \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \-e "POSTGRE…

uniapp push个推在线和离线消息监听,离线消息intent参数设置和获取,java后端推送

uniapp push 1.0版本 我用华为手机测试的离线消息&#xff0c;首先要保证在华为后台推送消息&#xff0c;uniapp离线打包的app能收到。 java后端推送 pom.xml依赖 <dependency><groupId>com.getui.push</groupId><artifactId>restful-sdk</artifac…

Java入门基础学习笔记20——三元运算符、运算符优先级

1、三元运算符介绍&#xff1a; 格式&#xff1a; 条件表达式 ? 值1: 值2 执行流程&#xff1a;首先计算关系表达式的值&#xff0c;如果值为true&#xff0c;就返回值1&#xff0c;如果值为false&#xff0c;就返回值2。 例1&#xff1a; package cn.ensource.operator;p…

企业级WEB服务Nginx安装

企业级WEB服务Nginx安装 1. Nginx版本和安装方式 Mainline version 主要开发版本,一般为奇数版本号,比如1.19Stable version 当前最新稳定版,一般为偶数版本,如:1.20Legacy versions 旧的稳定版,一般为偶数版本,如:1.18Nginx安装可以使用yum或源码安装,但是推荐使用源码编译安…

深圳盐田某前沿研究所:OLED透明屏引领未来科技空间

产品&#xff1a;55寸OLED透明屏 项目时间&#xff1a;2024年04月 项目地点&#xff1a;深圳盐田 在科技日新月异的今天&#xff0c;前沿的研究机构不仅追求科研的突破&#xff0c;也在不断探索和尝试将最新科技融入其工作环境之中。深圳盐田的一家前沿研究所便是这一探索的先…

星戈瑞ICG-Dextran的生物相容性

ICG-Dextran的生物相容性是评估其在生物体内应用的重要因素之一。虽然ICG-Dextran在不同应用中可能会有不同的配方和性质&#xff0c;但总体来说&#xff0c;它通常具有良好的生物相容性&#xff0c;主要有以下几个方面&#xff1a; **低毒性&#xff1a;**ICG-Dextran的成分中…

基于u-blox M8L的车载惯性导航系统方案(Carplay Location 认证)

此贴准备记录《基于u-blox M8L的车载惯性导航系统方案&#xff08;Carplay Location 认证&#xff09;》&#xff0c;先调查下&#xff0c; 如果有需求我再继续写。