c++ - 在 QString 中查找数字

标签 c++ qt pattern-matching qstring

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

first_34.33string
second-23.4string // In this case number is negative

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

编辑:

这个函数似乎有效,在回复中使用正则表达式:

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();
}

最佳答案

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

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

关于c++ - 在 QString 中查找数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23058390/

相关文章:

Seq.Length 上的 F# 模式匹配

c++ - 模板特化适用于 int 而失败于 double 作为一个类

python - 在spynner模块中使用nativeClickAt()方法出现段错误

c++ - Qt 列出类的属性

java - 匹配 XText 中的字符串,无论大小写

haskell - 是否可以在 Haskell 模块中导出构造函数以进行模式匹配,但不能导出构造函数?

C++模板,加载点的高效函数

c++ - 奇怪的编译问题 - 无法识别的类没有编译器错误

c++ - 在 64 位机器上编译 32 位代码时,我应该如何处理 "cast from ‘void*’ 到 ‘int’ 丢失精度?

c++ - 如何检查Qt中的当前光标形状