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

Geo*_*rge 0 c++ qt

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

Thi*_* B. 5

如果确定始终具有“ sometext_number”,则可以测试以下解决方案:

使用QString::split():

QString str = "hello_1234";
int number = str.split('_').last().toInt();
Run Code Online (Sandbox Code Playgroud)

使用QRegularExpression::match():

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