Qt5.12实战之正则与QregExp使用

news/2025/1/1 18:50:15/

1.普通字符匹配:

ab+ : 匹配一个a和任意个b 如: ab abb abbbbbb

c : 匹配一个c 如 : abcde 匹配内容: c 匹配开始索引:2 匹配结束索引 3

bcd : 匹配字符串 bcd 如: abcde 匹配内容是: bcd 匹配开始索引是:1 匹配结束索引是:4

2.转换符匹配:

\:转义字符匹配 如: \r \n \t \\ \^ \$ \. 匹配的内容分别是 回车 换行 制表符 \ ^ $ . 这些字符

3.普通字符与转换字符结合匹配:

\$abc : 匹配$abc 如ok$abcok 匹配的内容是 $abc 匹配开始索引是2 匹配结束索引 是6

\d : 匹配任意数字(0~9)

\w : 匹配任意字母,数字或下划线(A~Z,a~z,0~9,_)

\s : 匹配空格,制表符,换页符等空白字符中的任意一个

\. : 匹配除了换行符号(\n)外的任意字符

\d\d : 匹配两个连接出现的数字(0~9任意一个)

如 abc123 匹配内容12 匹配开始索引: 3 匹配结束索引: 5

a.\d : 匹配小写字母a开始后面是一个任意字符(\n除外)最后一个匹配是数字(0~9任意一个)

如 aaa123 匹配到的内容是aa1 匹配开始索引是:1 匹配结束索引是:4

4.自定义匹配表达式:

[ab5@] : 匹配中括号[]内所出现的任意字符 只要字符串中出现 a 或 b 或 5 或 @ 都能匹配成功

如: xxxaxxx bbbbx xkxkxkb klfdjskljflksl5a fldsjlf@dfs12 这些都匹配成功

[abc][bcd] : 匹配中括号[]内所出现的任意字符 如 123ab89 4545bc56 afafabc55 123afdgbcd

[^abc] : 匹配不包含在中括号内的任意字符,也就是字符串不能包含有a,b,c的任何一个字符

如: efccf1 成功 affdf 失败 cb123 失败 c234 失败 b67 失败

[a-f] : 匹配小字母a到f之间的任意一个字母: 如 a122 成功 aaafbc成功 f10成功

[^A-G0-5] : 匹配除了大写A到大写G之间的任意字母,和0到5之间的任意数字外的其它字符,

也就是说不能使用 A B C D E F G 和 0 1 2 3 4 5

5.匹配出现次数

在上面1到4点的基本上加上{n}, n 表示出现匹配的次数

如: abc{2} 匹配成功的 abcabc faccdabcabc

5{5} 匹配成功的 55555 655555 675555577

\w{2} 最少出现两个(字母,数字,下划线) 如: a5_ a5. a_ 5a 5_ 都匹配成功 $5@ 失败

{m,n} : 匹配最少与最少重复出现次数: 如 xg{1,3} 匹配成功 xg xgg xggg都匹配OK

{m,} : 匹配最少重复多少次 如: \d\w{2}\d{3,}

匹配成功: 1a1234 2a234567 6q789687979 1aw123 2qx456 5ex758437957

? : 匹配0次或者1 次 如 a[bc]? 匹配成功 a ab ac

+ : 匹配至少出现1次 相当于{1,} 如o+k 匹配成功: ok ooook ookkkkkkkkk

* : 匹配不出现,或者出现任意次 ,相当于 {0,} 如: \^*b 成功匹配 : "b" "\^^^b"

\d+\.?\d* : 匹配至少出现1次的数字,及出现0次或者1次任意字符(\n除外),和出现或者不出现的数字

如: 1$12.5 \d+ -> 12 \.? -> . 5 -> \d*

go{2,8}gle : 匹配 google goooooooogle

6.抽象意义特殊字符

^ : 表示从字符串的开始地方匹配,不匹配任何字符

$ : 表达从字符串的结尾地主匹配,不匹配任意字符

\b : 匹配一个单调边界,也就是单词与空格之间的位置,不匹配任意字符

如: ^aaa : 从字符串开始位置匹配aaa aaabbbccc 成功 bbbccccaaa 失败 bbbaaaccc 失败

aaa$ : 从字符串结尾位置匹配aaa bbbcccaaa 成功 aaabbbccc失败 cccaaabbb 失败

.\b. : 从单词边界开始匹配,取非单词边界一个任意字符(\n除外) ,

与单词边界一个任意字符(\n除外) 如 : @@@abc -> @@@非单词边界 abc单词边界

所以匹配内容为@a

\bend\b : 匹配单词边界前后 如: testend,okend,end 成功匹配到最后的一个end

| : 使用或匹配 , 左边或者右边匹配成功, 如: YES|NO

匹配成功 : this YES , this NO , this YES or NO

(go\s*)+ : 匹配次数修改 如: Let's go go go 匹配成功 ,匹配内容 go go go

\$(\d+\.?\d*) : 匹配$与小数 如 $12.78 匹配成功 \$ -> $ (\d+\.?\d*) ->匹配小数

7.更多匹配(贪婪模式)与更少匹配(勉强模式):

(d)(\w+) : 匹配d字母后面的一个或者多个字符 如: xxxdxxxd ->dxxxd

(d)(\w+)(d) : 前后匹配d字母,取中间的字符串 如: xxxdxxx dxxxdxxxd

(d)(\w+?) : 匹配d字母后面的一个或者多个字符 如: xxxdxxxd ->dx

(d)(\w+?)(d) : 前后匹配d字母,取中间的字符串 如: dxxxdxxxd ->xxx

<td>(.*)</td> :

匹配所有 <td><p></p>a</td><td><p>b</p></td> => <td><p></p>a</td><td><p>b</p></td>

<td>(.*?)</td> :

至少匹配 <td><p></p>a</td><td><p>b</p></td> => <td><p></p>a</td>

正则引用: 引用()中的表达式匹配到的字符 \1 表示引用第1个括号中内容, \2表示引用第2个括号中内容

('|")(.*?)(\1) 相当于 ('|")(.*?)('|")

(\w)\1{4,} : 表示在一个字母后面至少出现4上相同的字符,相当于 ()\w\w{}4,

如: abccccc -> (\w) -> c \1{4,} -> \w{4,} ->cccc


http://www.ppmy.cn/news/36048.html

相关文章

医院信息化-5 集成平台和数据中心

目录 1 集成平台1.1 技术上为什么要集成平台1.2 集成平台包括什么1.2.1 ESB(服务总线)1.2.2 IE(集成引擎)1.2.3 ETL工具1.2.4 患者主索引EMPI1.2.5 主数据MDM1.2.6 闭环管理1.2.7 CDA共享文档1.2.8 单点登录1.2.9 临床全息视图1.3 目前业内情况1.4 如何构建集成平台1.5 新技…

STM-32:TIM定时中断—定时器定时中断/定时器外部时钟

目录一、TIM简介1.1简介1.2TIM基本机构1.3基本定时器1.4通用定时器1.4.1通用定时器与基本定时器的异同1.4.2内外时钟源选择功能1.4.3编码器接口功能1.4.4主从触发模式功能1.4.5输出比较功能1.4.6输入捕获电路1.5高级计数器1.5.1重复计数器1.5.2死区生成电路与三相无刷电机1.5.3…

2023年广东省网络安全竞赛——Linux 操作系统渗透解析(超级详细)

任务四:Linux操作系统渗透测试 任务环境说明: 服务器场景:Server06服务器场景操作系统:Linux(版本不详) (关闭连接)通过本地PC中渗透测试平台Kali对服务器场景进行渗透测试,将该场景/var/www目录中唯一一个后缀为.bmp文件的文件名称作为Flag值提交;通过本地PC中渗透…

【以太网】88Q4364A1-DFX2A000,BCM84884EB0KFSBG 4端口以太网收发器

88Q4364A1-DFX2A000器件是一款支持屏蔽双绞线(STP)操作的单对以太网物理层收发器(PHY)。集成了MACsec&#xff0c;可抵御第2层车载网络安全威胁。MACsec提供逐跳数据交换的安全保障&#xff0c;防止入侵、中间人攻击、重放等攻击。 该收发器实现IEEE 802.3ch标准定义的2.5G/5G/…

小驰私房菜_02_Qcom 高通平台 新增加driver,需要准备哪些东西?

这篇文章主要介绍高通平台,新添加一个camera driver,一般需要准备哪些东西? 1、原理图 2、sensor 规格书 3、马达 4、lens 5、eeprom 规格书和烧录guild 6、模组规格书 7、sensor 寄存器配置 几个分辨率 需求找fae 申请寄存器配置 8、模组厂给 golden的测试…

Tomcat安装

1、 官网下载: https://tomcat.apache.org/ 2、配置好环境变量 JDK_HOME&#xff0c;不区分大小写&#xff0c;tomcat要用&#xff0c;必须设置 3、启动方式 bin/startup.bat 双击即可&#xff0c;终端console会产生中文乱码&#xff0c;本想改文件的编码方式&#xff0c;但是…

浅谈进程调度的基本过程

文章目录一、什么是进程/任务(Process/Task)二、进程控制块抽象(Process Control Block)2.1 与进程有关的属性三、进程调度一、什么是进程/任务(Process/Task) 进程是操作系统对一个正在运行的程序的一种抽象&#xff0c;换句话说&#xff0c;就是把进程看作程序的一次运行过程…

前端常见的8种设计模式

在前端开发中&#xff0c;设计模式是一种被广泛应用的思想。设计模式可以帮助开发者解决常见的问题&#xff0c;并提供可重用的解决方案。本文将会介绍前端常见的设计模式&#xff0c;并通过代码详解它们的实现。 一、单例模式 单例模式是指一个类只能被实例化一次&#xff0c…