概述
在许多场景中,我们需要验证用户输入的数据是否有效,或者是从文本中提取指定的数据,相对于Qstring的一些函数,QT提供了一个更加强大的类—QRegExp。
基本使用
matchedLength() :匹配的长度
capturedTexts() :捕捉到的字符串列表
captureCount():获取表达式中含有的捕捉组的数目
cap(int n) :第n个组的内容(0代表匹配自身),参数缺省值为0
cap(0):表示匹配的整个文本的值
cap(1):表示第1个圆括弧中的值
cap(2):表示第2个圆括弧中的值
pos(int n) :第n个组的位置(默认值为0)
indexIn() :搜索字符串以找到匹配的字串,返回索引值,失败返回-1
应用示例
QRegExp rx("(.*)=(.*)");
QString str = ("a=100");
int pos = rx.indexIn(str);
if(pos>=0)
{
qDebug()<<rx.matchedLength(); //5
qDebug()<<rx.capturedTexts(); //("a=100", "a", "100")
qDebug()<<rx.cap(0);//"a=100"
qDebug()<<rx.cap(1);//"a"
qDebug()<<rx.cap(2);//"100"
qDebug()<<rx.pos(0);//0
qDebug()<<rx.pos(1);//0
qDebug()<<rx.pos(2);//2
}