查找 QString 中的数字

Jep*_*sen 5 c++ qstring qt pattern-matching

例如,我有一个 QString,里面有一些数字

first_34.33string
second-23.4string // In this case number is negative
Run Code Online (Sandbox Code Playgroud)

如何从字符串中提取数字?

编辑:

这个函数似乎可以工作,在回复中使用正则表达式:

float getNumberFromQString(const QString &xString)
{
  QRegExp xRegExp("(-?\\d+(?:[\\.,]\\d+(?:e\\d+)?)?)");
  xRegExp.indexIn(xString);
  QStringList xList = xRegExp.capturedTexts();
  if (true == xList.empty())
  {
    return 0.0;
  }  
  return xList.begin()->toFloat();
}
Run Code Online (Sandbox Code Playgroud)

Seb*_*nge 6

这应该适用于有效数字:QRegExp("(-?\\d+(?:[\\.,]\\d+(?:e\\d+)?)?)")

编辑:抱歉,括号弄乱了,现在应该可以了。