返回顶部

Qt正则表达式

 

 

一、Qt正则表达式QRegExp

  Qt使用QRegExp实现正则表达式,常用函数如下:

  

函数 说明
cap(int n)

返回第n个子表达式的内容,第1个(cap(0))是整个内容

captureTexts()

返回捕获的表达式的内容列表,返回值是QStringList,第1个是整个字符串

exactMatch(QString)

完全匹配,返回值是bool类型

indexIn()

尝试在位置offset开始找到匹配的内容,如果没有找到返回-1

isValid()

判断给定的正则表达式是否是有效的,返回true有效,false无效

matchedLength()

返回匹配字符串的长度

setPattern(QString)

设置正则表达式,大小写敏感、通配符和最小匹配项不会改变

escape()

常用来动态创建正则表达式pattern,

二、正则表达式

  2.1 元字符介绍

元字符 说明
. 匹配除了换行符以外的任意字符
\w 匹配字母、数字、下划线、汉字
\W 匹配除了字母、数字、下划线、汉字以外的字符
\s

匹配任意的空白符,包括空格、制表符、换页符

\S

匹配所有的非空白符

\b

单词的开始或结尾,

\B

匹配非单词边界,即左右两边都是/w范围或者所有两边都不是/w范围时的字符缝隙

\~或^

匹配字符串的开始

$

匹配字符串的结束

\d

匹配数字

\D

匹配所有非数字字符

  2.2 表达式介绍

常用表达式 说明
\r,\n 回车和换行符
\t 制表符
\\ \本身
[] 包含一系列字符
[^] 包含之外的一系列字符
{n} 表达式重复n次
{m,n} 表达式至少重复m次,之多重复n次
{m,} 表达式至少重复m次
? 表达式匹配0次或1次
+ 表达式至少匹配1次
* 表达式至少匹配0次
| 左右两边表达式之间或关系,匹配左边或右边
()

1.被修饰匹配次数时,括号中的表达式可以作为整体被修饰;

2.获取匹配结果时,括号中的表达式匹配到的内容可以被单独获取到

在修饰匹配次数的特殊符号后加?号

表示非贪婪模式,使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式尽可能不匹配

/1,/2

反向引用,可以按照左括号的顺序使用括号内匹配到的内容,/1是第一个括号匹配的内容

(?=xxxx)

正向预搜索匹配,在缝隙的右侧,必须能够匹配上xxxx部分的表达式

(?!xxxx)

正向预搜索不匹配,在缝隙的右侧,必须不能匹配xxxx部分的表达式

(?<=xxxx) 反向预搜索匹配,在缝隙的左侧,必须能够匹配xxxx部分的表达式
(?<!xxxx) 反向预搜索不匹配,在缝隙的左侧,必须不能匹配xxxx部分的表达式
/xXX 编号在0~255范围的字符,ASCII码来说,如空格可以使用/x20表示
/uXXXX 任何字符可以使用/u再加上其编号的4位十六进制数表示

 

  2.3 以下字符具有特殊意义,需要添加转移字符才能/匹配字符本身

字符 说明
^ 匹配字符串的开始位置,/^匹配自身
$ 匹配字符串的结束位置,/$匹配自身
() 标记一个子表达式的开始和结束位置,/(/)匹配自身
[] 自定义能够匹配多种字符的表达式,/[,/]匹配自身
{} 修饰匹配次数的符号,/{,/}匹配自身
. 匹配除换行符以外的任意一个字符,/.匹配自身
? 匹配次数为0次或1次,/?匹配自身
+ 至少匹配1次,/+匹配自身
* 至少匹配0次,/*匹配自身
| 左右两边表达式或关系,/|匹配自身

  2.4 表达式属性设置

表达式属性 说明
IgnoreCase 默认情况下,表达式中的字母要区分大小写,配置该属性使匹配时不区分大小写
Singleline 默认情况下,小数点.匹配除了换行符以外的任意字符,配置该属性可使小数点匹配包括换行符在内的所有字符
Multiline 默认情况下,^和$只匹配所有字符串的开始和结尾位置,配置该属性可匹配每一行的开始和结尾位置
Global 在将表达式用来替换时起作用,配置为Global表示替换所有的匹配

 

参考:https://www.cnblogs.com/findumars/p/5553322.html

posted @ 2021-03-09 11:09  Zoya23  阅读(1014)  评论(0编辑  收藏  举报