Qt——QString 只保留数字

在Qt中,如果你想从一个`QString`对象中只保留数字,可以使用`QString::remove()`函数结合一个正则表达式来实现。正则表达式可以用来匹配那些你想要从字符串中移除的字符,例如非数字字符。

以下是一个示例代码,展示如何从一个字符串中移除非数字字符,从而只保留数字:

cpp 复制代码
#include <QString>
#include <QDebug>

int main() {
    QString originalString = "Sample 123 text with 456 numbers 789";
    // 使用正则表达式移除非数字字符
    originalString.remove(QRegExp("[^0-9]"));

    qDebug() << "Only digits:" << originalString; // 应输出 "123456789"

    return 0;
}
  • QRegExp("[^0-9]"):这个正则表达式匹配任何不是数字的字符。`[^0-9]`的意思是匹配任何不在`0-9`范围内的字符。

  • remove():`QString::remove()`函数接受一个`QRegExp`对象作为参数,并移除所有匹配该正则表达式的字符。

在Qt 5之后的版本中,`QRegExp`已经被更现代和功能更强大的`QRegularExpression`所取代。如果你使用的是Qt 5或更高版本,推荐使用`QRegularExpression`。下面是使用`QRegularExpression`的同样操作:

cpp 复制代码
#include <QString>
#include <QDebug>
#include <QRegularExpression>

int main() {
    QString originalString = "Sample 123 text with 456 numbers 789";
    // 使用正则表达式移除非数字字符
    originalString.remove(QRegularExpression("[^0-9]"));

    qDebug() << "Only digits:" << originalString; // 输出 "123456789"

    return 0;
}

这样,`QString`中就只保留了数字,其他的文本部分都被移除了。这可以在处理文本数据时非常有用,特别是当你需要从一段包含混杂内容的文本中提取数字信息时。

相关推荐
&岁月不待人&3 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove6 分钟前
G1垃圾回收器日志详解
java·开发语言
无尽的大道14 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒18 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio27 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE29 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻33 分钟前
WPF中的依赖属性
开发语言·wpf
洋24041 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙43 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点44 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式