1. 程式人生 > 其它 >Qt的section函式介紹

Qt的section函式介紹

技術標籤:Qt相關字串正則表示式Qt

section釋義:部分

因此我們可以知道,Qt中的section函式的功能就是從一段字串中拿出某一段連續的部分

需要知道的定義:位置的標識
從左到右:0,1,2,3,4,5……
從又到左:-1,-2,-3,-4,-5……
這個位置的標識一定要清楚,而且要清楚的是,這個標識是字串被切分之後的字串們的編號!!!不是某個字元的位置,而是子字串的位置

如字串為:“aaa/bbb/ccc/ddd/eee/fff”
從左到右的對應編號關係為:

編號
0aaa
1bbb
2ccc
3ddd
4eee
5fff

從右到左的對應編號關係為:

編號
-1fff
-2eee
- 3ddd
-4ccc
-5bbb
-6aaa

一定要理清楚這個順序關係,這點至關重要!!!

接下來不如正題,就是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;

結果如下:
在這裡插入圖片描述