Qt的section函数介绍

section释义:部分

因此我们可以知道,Qt中的section函数的功能就是从一段字符串中拿出某一段连续的部分

需要知道的定义:位置的标识
从左到右:0,1,2,3,4,5……
从又到左:-1,-2,-3,-4,-5……
这个位置的标识一定要清楚,而且要清楚的是,这个标识是字符串被切分之后的字符串们的编号!!!不是某个字符的位置,而是子字符串的位置

如字符串为:“aaa/bbb/ccc/ddd/eee/fff”
从左到右的对应编号关系为:

编号
0 aaa
1 bbb
2 ccc
3 ddd
4 eee
5 fff

从右到左的对应编号关系为:

编号
-1 fff
-2 eee
- 3 ddd
-4 ccc
-5 bbb
-6 aaa

一定要理清楚这个顺序关系,这点至关重要!!!

接下来不如正题,就是section函数的使用,这里面只是简单介绍一下,section函数原型如下:

QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const

QString QString::section(const QString &sep, int start, int end = -1, SectionFlags flags = SectionDefault) const

QString QString::section(const QRegExp &reg, int start, int end = -1, SectionFlags flags = SectionDefault) const

QString QString::section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const

以上是手册中罗列出来的section函数的四个重载,其实我们可以发现,这四个函数可以抽象为:
section(分隔标准开始子字符串编号结束子字符串编号分隔标志
接下来详解这四个参数

  • 分隔标准:这是用来将字符串切分的依据,可以是字符、字符串、正则表达式等;
  • 开始子字符串编号:决定从哪个子字符串开始保留;
  • 结束子字符串编号:决定到哪个子字符串结束;
  • 分隔标志:这个是对于切分出来的字符串进行选取的依据(一般情况下,默认的就行)。

其中,这个开始和结束的区间是一个闭区间[start, end],这点牢记!!!

举个例子,比如说我现在有个字符串"/111/222/333/444/555/666/777/888",我想把最后一段子字符串舍弃,我们可以采用如下的方式:

QString str("/111/222/333/444/555/666/777/888");
QString str2 = str.section('/', 0, -2);// 切分标准为'/'
qDebug() << str2;

结果如下:
Qt的section函数介绍_第1张图片

你可能感兴趣的:(Qt相关,字符串,正则表达式,Qt)