如何拆分QString

时间:2016-04-14 13:32:29

标签: qt split qstring

我正在尝试解析此表单的iPhone Ditributor

QString

但我只需要QString str = "34 t:513 l:21 o:0x0147 [FBI] Miscellaneous No. : 89f2aad996ae4a5c961a 123 532af2"; QRegExp tagExp(":"); QStringList firstList = str.split(tagExp); 。那么可以在"9f2aad996ae4a5c961a 123 532af2"之后得到子串吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想要列表的最后一个元素(在最后一个" :"之后)。您可以执行以下操作:

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();

函数takeLast获取最后一个字符串并返回它,并将其从列表中删除。如果您不想从列表中删除最后一个元素,您可以执行以下操作:

QString requiredPart = firstList.value(firstList.length() - 1);

QString requiredPart = firstList.at(firstList.length() - 1);

QString requiredPart = firstList[firstList.length() - 1];

但是第一个选项是最安全的,因为它涵盖了你的超出范围&#34;问题更好。

您也可以使用:

requiredPart = requiredPart.trimmed();

删除开头/结尾的任何空格。或者进一步使用:

requiredPart = requiredPart.simplified();

删除字符串中多余的空格。你可能不需要这个。