QT正则表达式基础

QT正则表达式基础

*****************************************************************************

前言


QRegExp简介:

正则表达式或“ regexp”是用于在文本中匹配子字符串的模式。这在很多情况下都是有用的,Qregexp 是模仿 perl 的 regexp 语言的。它完全支持 unicode。Qregexp 还可以在更简单的通配符模式中使用,这与命令 shell 中的功能类似。Qregexp 使用的语法规则可以通过 setpatternsyntax ()进行更改。特别是,模式语法可以设置为 qregexp: : fixedstring,这意味着要匹配的模式被解释为普通字符串,也就是说,特殊字符(例如,反斜杠)不能转义。

二、正则表达式

1.基础知识:

. 匹配任意单个字符.
eg:“3.2” //等价于3_2用一个字符替换.号。
输入:3X2,3和2,3a2

^ 匹配字符串首.
eg:"^32" //此时限制开头为32且后面没有跟字符。
只能输入:3,32

$ 配字符串尾.
eg:“32$” //此时限制结尾为32且前面没有跟字符等价于"^32"。
只能输入:3,32

[ ] 匹配括号内输入的任意字符.
eg:[123] //此时限制输入[ ]里一个字符。
只能输入:1,2,3

*匹配任意数量的前导字符.
eg:2
3 //此时限制输入2n3 等价于3前面n个2。
输入:3,23,2223,223,2222223

+ 匹配至少一个前导字符.
eg:2+3 //此时限制输入2n3 等价于3前面n个2且n!=0。
输入:3(错误),23,2223,223,2222223

? 匹配一个前导字符或为空.
eg:2?3 //此时表示3前面的字符为空或2
只能输入:3,23

    QValidator *validator = new QRegExpValidator(QRegExp("3.2"), this );
 	QValidator *validator = new QRegExpValidator(QRegExp("^32"), this );
    QValidator *validator = new QRegExpValidator(QRegExp("32$"), this );
    QValidator *validator = new QRegExpValidator(QRegExp("[123]"), this );    
    QValidator *validator = new QRegExpValidator(QRegExp("2*3"), this );
    QValidator *validator = new QRegExpValidator(QRegExp("2+3"), this );
    QValidator *validator = new QRegExpValidator(QRegExp("2?3"), this );
                    
    ui->LineEdit->setValidator( validator );

2.组合使用

限制输入9位数(示例):

    QValidator *validator = new QRegExpValidator(QRegExp("[0-9]{9}"), this );
                 

限制输入以123为前导字符的9位数(示例):
    QValidator *validator = new QRegExpValidator(QRegExp("^123[0-9]{6}"), this );
    
                 

限制输入以n23为前导字符的9位数(示例):
    QValidator *validator = new QRegExpValidator(QRegExp("^.23[0-9]{6}"), this );
    
                 

限制输入大写字母的9个字符(示例):
    QValidator *validator = new QRegExpValidator(QRegExp("[A-Z]{9}"), this );
   //等价于QValidator *validator = new QRegExpValidator(QRegExp("[ABCDEFGH...Z]{9}"), this );
    
                 

总结

以上就是今天要讲的内容,本文仅仅简单介绍了正则表达式的使用,而正则表达式提供了大量能使我们快速便捷地处理数据的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值