如何在Qt中获取字符串的一部分?

时间:2019-05-16 07:57:45

标签: c++ qt

我有一组满足以下模式的字符串: sometext_number 。因此,我总是在'_'符号后面有一个数字。是否有从字符串中获取数字的便捷方法,而不论其大小如何?

3 个答案:

答案 0 :(得分:5)

如果您确定总是有“ sometext_number” ,则可以测试以下解决方案:

使用QString::split()

QString str = "hello_1234";
int number = str.split('_').last().toInt();

使用QRegularExpression::match()

QString str = "world_5678";
QRegularExpression regex("\\w+_(?<number>\\d+)");
QRegularExpressionMatch m = regex.match(str);
int number = m.captured("number").toInt();

答案 1 :(得分:1)

如果您仍在使用QString,则可以

QString s = "sometext_5";
int index = s.indexOf("_");
int number = s.mid(index+1).toInt();

答案 2 :(得分:0)

您可以使用 std :: find ,它返回您正在查看的元素的索引,然后在参数中给定的字符串上使用 substr 您要停止拆分的索引