如果我正确理解你想要的列表的最后一个元素(在最后的“:”你可以做以下...
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()。 –