我正在尝试解析此表单的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"
之后得到子串吗?
答案 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();
删除字符串中多余的空格。你可能不需要这个。