Qt 正则表达式匹配失败的一个原因

在Qt中做正则表达式时,遇到一个很坑爹的问题,还是经验不足导致。

在正则表达式中,有很多需要元字符,是需要使用普通字符加转义符号搭配使用的。比如\w\s。对于这类字符,在Qt中使用时,对\再次进行转义,某则模式串是无法识别为\w\s的。即在Qt中,应该是用"\\w""\\s"来匹配元字符中加了转义符号的字符。对于在元字符集中不需要加转义的字符,在需要将其匹配为普通字符的时候,只需要加一层转义,如"\["

原始字符串:

"\r\r\norangepi3-lts login: "

模式串1:

".+\s+login:\s*$"

此时,使用模式串1去匹配发现并不能匹配成功。但是,使用正则表达式的测试工具测试,这个模式串是能匹配成功的。
在这里插入图片描述

模式串2:

".+\\s+login:\\s*$"

使用模式串2匹配是能匹配成功的。 原因就在于,模式串1在正则测试工具中能匹配成功,是因为它本身是正确的。但是由于在C/C++中,对于\ 符号,是需要转义的,这个是字符串层面的转义,由于模式串是C/C++字符串,所以,\s 元字符是需要被C/C++字符串进行转义,然后,其本身的转义是对于正则表达式语法规则而言的转义。因此需要两层转义,才能匹配成功。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus监控实战系列二十:监控Kubernetes集群(下)

本文承接上篇,在本篇中我们会讲解Prometheus如何应用基于Kubernetes的服务发现功能,检索目标信息并进行监控。 在监控策略上,我们将混合使用白盒监控与黑盒监控两种模式,建立起包括基础设施(Node)、应用容器(Docker)、…

【新】(2023Q2模拟题JAVA)华为OD机试 - 时间格式化

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:时间格式化 题目 运维工程师…

(一)人工智能应用--深度学习原理与实战--初识深度学习

认识人工智能、机器学习与深度学习的关系 人工智能(Artificial IntelLigence)诞生于20世纪50年代,其简洁定义为:让计算机自动完成通常由人类完成的智力任务。人工智能是一个综合性领域。最早期出现的预定义规则的专家系统(Expert System) -----由程序员精心设计出明确的规则…

Flink从入门到精通之-05 DataStream API

Flink从入门到精通之-05 DataStream API 我们在第 2 章介绍 Flink 快速上手时,曾编写过一个简单的词频统计(WordCount)程序,相信读者已经对 Flink 的编程方式有了基本的认识。接下来,我们就将开始大量的代码练习&…

基于springboot实现学生成绩管理系统【源码+论文】

16springboot学生成绩管理系统演示录像2022_o8mkp开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Mav…

AirServer手机投屏软件的功能优势特点介绍

AirServer是适用于Mac和PC的先进的屏幕投屏软件,功能是十分强大。它的主要功能在于实时地将移动设备上的图像画面内容投放到电脑设备上,让电脑成为iPad、iPhone等iOS系统设备的大屏显示器。在设备之间建立局域网内的信号发送与接收通道,确保数…

细谈linux软硬链接

文章目录Ⅰ. 软链接Ⅱ. 硬链接1、硬链接2、硬链接数Ⅲ. 软硬链接的区别Ⅳ. 软硬链接的应用1、软链接的应用2、硬链接的应用3、硬链接创建规定Ⅰ. 软链接 ​ 在讲这些链接之前,我们都会先讲如何创建它们! ​ 对于软连接,在 linux 中&#xf…

python matplotlib 图片显示中文

在Linux 环境中,使用matplotlib 显示中文时,总是提示: /python/stock.py:273: UserWarning: Glyph 33647 (\N{CJK UNIFIED IDEOGRAPH-836F}) missing from current font. fig.savefig(self.name ".jpg", bbox_inches tight) …

【数据结构】插入排序 (直接插入排序 希尔排序)

文章目录直接插入排序希尔排序直接插入排序 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 如果tmp比end的数大或者相等,就继续放在end后面。 如果比end的数小&…

Elasticsearch基本安全加上安全的 HTTPS 流量

基本安全加上安全的 HTTPS 流量 在生产环境中,除非您在 HTTP 层启用 TLS,否则某些 Elasticsearch 功能(例如令牌和 API 密钥)将被禁用。这个额外的安全层确保进出集群的所有通信都是安全的。 当您在模式下运行该elasticsearch-ce…

初始React

一.React的诞生1.什么是React?React是一个讲数据渲染为HTML视图的来源Js库,用于构建用户界面的JS库。在以前的学习中构建用户界面的常用操作步骤:发送请求获取数据处理数据(过滤,整理格式等)操作DOM呈现页面2.React诞…

《SpringBoot》第02章 自动配置机制(一) 项目启动

前言 关于SpringBoot,最大的特点就是开箱即用,通过自动配置机制,遵守约定大于配置这个准则,那么这个是如何实现的呢? 本章首先会介绍SpringBoot的启动执行 一、启动第一步:初始化 1.本章概述 当启动Sp…

【论文精读(李沐老师)】Attention Is All You Need

Abstract 在主流的序列转录(给你一个序列,生成另外一个序列)模型中主要是依赖复杂的RNN和CNN,一般包括encoder和decoder两个结构。在性能最好的模型里,通常使用注意力机制连接encoder和decoder。 (本文想做…

HTTP API接口设计规范

1. 所有请求使用POST方法 使用post,相对于get的query string,可以支持复杂类型的请求参数。例如日常项目中碰到get请求参数为数组类型的情况。 便于对请求和响应统一做签名、加密、日志等处理 2. URL规则 URL中只能含有英文,使用英文单词或…

爱玩飞飞加速实现与分析

一步一步找数据。然后根据游戏数据找游戏基址,游戏基址可以遍历所有数据。想学的可以看看。第一步找基础数据,我们用的ce7.1.当然你们也可以用其他版本。网上随便下一个就行。 第一步。打开ce7.1附加游戏进程。 然后看下自己的血量是多少。我们这里是5…

HTML5支持的视频文件格式和音频文件格式有哪些?

在 HTML5 标准中, 我们有了新的 和 标签, 分别可以引入视频和音频文件的标签 那么这些标签又可以支持哪些文件格式呢 ? 格式支持 视频文件格式 MP4:MPEG-4 Part 14,支持H.264编码。几乎所有的浏览器都支持该格式。 WebM:谷歌开发的格式&a…

【最短路算法】第三弹:一文学懂spfa 算法(队列优化的Bellman-Ford算法)

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:算法、数据结构、Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: 算法 ;该专栏专注于蓝桥杯和ACM等算法竞赛🔥近期目标&…

Java Script

一.初识js 1.与css html的关系 HTML 网页的结构(骨CSS:网页的表现(皮JavaScript :网页的行为2.运行过程 编写的代码是保存在文件上,也就是存储到硬盘(外存zhong)双击以后,html文件浏览器(引用程序)就会读取文件,将文件内容加载到内存中,(数据流向:硬盘->内存)浏览器会解析用…

Linux——基本指令

目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令(重要) 06.rmdir指令 && rm 指令(重要) 07.man指令(重要) 08.cp指令(重要) 09.mv指令&…

react使用craco.config.js完成rem移动端适配(sass)

环境: "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.8.2", "sass": "^1.58.3", yarn add craco/craco postcss-pxtorem lib-flexible 1、创建 craco.…