qregexp括号匹配_QT-正则表达式QRegExp

本文详细介绍了QT中的QRegExp类,用于字符串模式匹配和操作。QRegExp支持多种匹配模式,如正则表达式、通配符和固定字符串匹配。文中通过实例演示了如何使用QRegExp进行验证、查找、替换、截取等操作,并给出了各种模式的使用方法,包括基本字符、逻辑控制字符、快捷匹配字符等。
摘要由CSDN通过智能技术生成

QT-正则表达式QRegExp

sf2gis@163.com

2015年1月10日

1 目的:字符串模式匹配及操作。

2 原理:通过模式字符串,查找相应的字符串索引。与QString配合,验证、查找、修改、替换、截取等操作字符串。

3 方法:QRegExp

QRegExp是以Perl的正则表达式为基础发展来的。可以使用简单的通配符匹配,或者纯字符匹配,也可以使用正则表达式匹配。使用setPatternSyntax()可以切换不同的匹配模式。

使用exactMatch()验证字符串是否符合指定格式。

匹配模式:RegExp,RegExp2,Wildcard,WildcardUnix,FixedString,W3CXmlSchema11。

3.1 正则表达式匹配:QRegExp::setPatternSyntax(QRegExp::RegExp)

默认模式。类似Perl格式的正则表达式。

RegExp2模式与RegExp类似,但是使用最小分组匹配来获取匹配字符串。

3.1.1模式字符串格式

注意:在具有\的格式时,需要使用\\来转义。

3.1.1.1  基本字符模式

1)   简单单个字符:纯字符。

2)   字符集中单个字符:【】表示指定字符集中单个字符(格式:字符集合,或-表示范围,或^表示排除)。可以使用快捷匹配字符(参见:快捷字符:使用一个自定义的转义字符来代替常用的模式字符串。)。如果需要使用utf8(如汉字)可以使用\u编码(参见只包含汉字的字符串。)的方式,utf8的编码可以网络查找,如http://utf8.supfree.net/ 。

示例:

a[^3]2.txt表示a2中间任意不同于3的一个字符(无字符为false),

[0-9-]表示0到9或负号-。

3)   数量字符:至少n个:E{n,},至多n个:E{,m},存在n个至m个:E{n,m}。确定数量字符E{}。默认返回最多匹配字符,使用setMinimal()则返回最少匹配字符串。

4)   开始字符:^

5)   结束字符:$

3.1.1.2  逻辑控制字符(断言字符)

1)   or:|表示或者。

2)   分组、捕获:(E)表示括号内的模式为一个基本模式,可以捕获。

3)   分组、不捕获:(?:E)表示括号内的模式为一个基本模式,不可捕获。

4)   分组中捕获值:(\m)。m是捕获的第m个分组值。

5)   肯定匹配:E(?=RegExp)查找E,其指定位置是RegExp。

6)   否定匹配:E(?!RegExp)=查找E,其指定位置不是RegExp。

3.1.1.3  快捷匹配字符:使用一个自定义的转义字符来代替常用的模式字符串。

1)   数字、非数字:\d=【0-9】,\D=[^0-9]。

2)   字母或数字或下划线、非字母或数字或下划线或:\w=【A-Za-z0-9_】,\W=【^A-Za-z0-9_】。

3)   空白字符、非空白字符:\s=【 \t\r\n】,\S=【^ \t\r\n】。

4)   任意字符(包括换行):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值