QT中的正则表达式和perl中的正则表达式类似,QT中的QRegExp类实现了正则表达式。
public成员函数:
public成员函数分为三类
一、构造函数
1、默认构造函数,QRegExp(),产生一个空的正则表达式对象。
2、拷贝构造函数,QRegExp(const QRegExp& patten)
3、模式构造函数,QRegExp ( const QString & pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, PatternSyntax syntax = RegExp),产生指定匹配模式的正则表达式对象。
二、可以获得正则表达式对象的信息和匹配信息
1、isValid(),判断正则是否合法,合法返回true,否则返回false。
QRegExp exp1("c[9]"); bool valid=exp1.isValid();//返回true QRegExp exp1("c[9"); bool valid=exp1.isValid();//返回false
2、errorString()
检查正则是否有错误,和isValid类似,当有错误时返回"no error occurred",无错误返回"unexpected end"
3、isEmpty(),判断正则是否为空,当采用默认构造函数生成正则时,此函数返回true,否则返回false。
QRegExp exp1; bool valid=exp1.isEmpty();//返回true
4、isMinimal()
正则捕捉时,数量词是以是否以最小数量捕捉,这里和perl不同,perl里可以指定每一项捕捉的属性,而qt则所有的捕捉项属性必须一样。
5、caseSensitivity ()
看正则是否大小写敏感。
6、cap(),capturedTexts ()
前者获得捕捉的每一项,index从1开始,后者则获得整个捕捉列表。
7、exactMatch(QString),返回是否整串匹配,匹配一部分也返回false。
8、indexIn(),进行匹配,如果成功则返回index,不成功返回-1
9、lastIndexIn(),从后面进行匹配
10、matchedLength(),返回匹配的串的长度。
11、numCaptures(),获得正则里捕捉项的个数。
12、pattern(),获得正则本身
13、patternSyntax()
默认为RegExp。
14、pos
获得正则或者捕捉项在匹配字符串当中的index,0为整个正则的index,1为捕捉项1的位置,一次类推。
三、设置正则表达式的参数。
1.setMinimal(bool),参见 isMinimal
2.setCaseSensitivity(),参数为Qt::CaseInsensitive大小写不敏感,参数为Qt::CaseSensitive为大小写敏感。默认为敏感。
3、setPattern(),参见pattern()
4、setPatternSyntax(),参见patternSyntax()
另:1. 正则对象支持 运算符 ==,=,!= 重载。
2.正则共通的部分则不再叙述,和perl很相似,不过还是perl用着正则最清爽,呵呵。