如果我正確理解你想要的列表的最後一個元素(在最後的「:」你可以做以下...
QRegExp tagExp(":");
QStringList firstList = str.split(tagExp);
// Get the last string from list:
// "34 t"
// "513 l"
// "21 o"
// "0x0147 [FBI] Miscellaneous No. "
// "89f2aad996ae4a5c961a 123 532af2" <<-- this is the last element in list
QString requiredPart = firstList.takeLast();
的functino takeLast獲取最後一個字符串並返回它也從列表中刪除它。如果你不想從你可以做這樣的事情列表中刪除最後一個元素:
QString requiredPart = firstList.value(firstList.length() - 1);
或
QString requiredPart = firstList.at(firstList.length() - 1);
或
QString requiredPart = firstList[firstList.length() - 1];
但是第一個選項是最安全的,因爲它涵蓋了你的「出界」的問題更好。
您還可以使用:
requiredPart = requiredPart.trimmed();
在開始/結束刪除任何空格。或者繼續使用:
requiredPart = requiredPart.simplified();
要刪除字符串中多餘的空格..可能你不需要這個。
我會像'str.split(「No。:」)「一樣分割它,並將第二個元素放在列表中。 – vahancho
它取決於要分析的行的預期格式。 (例如,總是有一個「:」,並且是隨機文本之前的文本或者是它的結構)。如果是關於最後一個「:」,我會去lastIndexOf(「:」)和QString :: mid()。 –