1.正则表达式
- 正则表达式——详情版+常用表达式
- Qt中正则表达式(常用)
- Qt 正则表达式介绍 QRegExp的使用
2 QRegExp
2.1 indexIn
int indexIn(const QString &str, int offset = 0, QRegExp::CaretMode caretMode = CaretAtZero) const
尝试从位置偏移量(默认为0)在str中查找匹配。如果offset为-1,则从最后一个字符开始搜索;如果-2,在最后一个字符的旁边;等
返回第一个匹配的位置,如果没有匹配则返回-1。
caretMode参数可以用来指示^应该在索引0处匹配还是在偏移量处匹配。
QString regexStr = "^[0-9a-zA-Z_]+@[0-9a-zA-Z]+(\\.[a-zA-Z]+)+$";
QRegExp regExp(regexStr);
QString str = "123@qq.com";
if(regExp.indexIn(str)>=0)
{
qDebug()<<"This is email";
}
2.2 captureCount()
int QRegExp::captureCount() const
返回正则表达式中包含的捕获数。
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
2.3 capturedTexts()
QStringList QRegExp::capturedTexts() const
返回捕获的文本字符串的列表。
列表中的第一个字符串是整个匹配的字符串。随后的每个列表元素都包含一个与regexp的(捕获的)子表达式匹配的字符串。
2.4 cap
QString QRegExp::cap(int *nth* = 0) const
返回第n个子表达式捕获的文本。整个匹配的索引为0,括号内的子表达式的索引从1开始(不包括非捕获括号)。
QString regexStr = "^([0-9a-zA-Z_]+)(@[0-9a-zA-Z]+)(\\.[a-zA-Z]+)+$";
QRegExp regExp(regexStr);
QString str = "123@qq.com";
if(regExp.indexIn(str)>=0)
{
qDebug()<<regExp.indexIn(str);//0
qDebug()<<regExp.captureCount();//3
qDebug()<<regExp.capturedTexts();//"123@qq.com", "123", "@qq", ".com"
qDebug()<<regExp