Qt字符串分割

zp_lhy 2017-07-04 10:45:40
一个字符串包含多个的标点符号(如:abcd,efgh,ijklmnop、qrst),如何把它分割成abcd efgh ijklmnop qrst 四个字符串,有没有简单点的方法,最好是可以一次完成的,希望各位大神不吝赐教!
...全文
1023 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zp_lhy 2017-07-05
  • 打赏
  • 举报
回复
谢谢各位的帮忙,先结贴哈
zp_lhy 2017-07-05
  • 打赏
  • 举报
回复
引用 8 楼 jklinux 的回复:
[quote=引用 6 楼 zp_lhy 的回复:] [quote=引用 3 楼 jklinux 的回复:] QString str = "abcd,efgh,ijklmnop、qrst,+haha;what"; qDebug() << str.split(QRegExp("\\W+"));
谢谢,已经解决了; 还有一个小问题,就是如果正则表达式是直接使用的符号,如QRegExp("[,|,|、]"),这样通过split后会有空的字符串是怎么回事[/quote] 应不会有空的字符串吧,字符串有空格倒有可能。这样就是指定仅以"," "," "、"符号来分割字符串了[/quote] 是会有的,不直道是咋回事 QRegExp reg("[,|,|、]");//("\\W+");//("[,|\uff0c|\u3001]"); QString str = "abc,jkjks,hcnjsa、hjjs。hjsn,ujj。aaaa"; QStringList list = str.split(reg); qDebug()<<"@list = "<<list;
jklinux 2017-07-04
  • 打赏
  • 举报
回复
QString str = "abcd,efgh,ijklmnop、qrst,+haha;what"; qDebug() << str.split(QRegExp("\\W+"));
大卫无限 2017-07-04
  • 打赏
  • 举报
回复 1


QString str = "abcd,efgh,ijklmnop、qrst";
    QRegExp regexp("\\b\\w+\\b");  //\b表示符号和字符的边界, \w表示字符
    int index = 0;
    do
    {
        index = regexp.indexIn(str, index);
        if (index < 0)
            break;
        //这里输出结果
        qDebug() << regexp.cap();

        index += regexp.matchedLength();

    } while(index >= 0);
C_522 2017-07-04
  • 打赏
  • 举报
回复
暴力,循环。。。。。 循环每一个字符,判断是不是数字,字母,如果不是,就认为是一个分隔符, 每判断一个分隔符,就分割一段字符串出来
jklinux 2017-07-04
  • 打赏
  • 举报
回复
引用 6 楼 zp_lhy 的回复:
[quote=引用 3 楼 jklinux 的回复:] QString str = "abcd,efgh,ijklmnop、qrst,+haha;what"; qDebug() << str.split(QRegExp("\\W+"));
谢谢,已经解决了; 还有一个小问题,就是如果正则表达式是直接使用的符号,如QRegExp("[,|,|、]"),这样通过split后会有空的字符串是怎么回事[/quote] 应不会有空的字符串吧,字符串有空格倒有可能。这样就是指定仅以"," "," "、"符号来分割字符串了
zp_lhy 2017-07-04
  • 打赏
  • 举报
回复
引用 5 楼 onlylovercl 的回复:
这个为什么需要一次处理完成呢?效率?
嗯,一次性将需要的数据全部取出来
zp_lhy 2017-07-04
  • 打赏
  • 举报
回复
引用 3 楼 jklinux 的回复:
QString str = "abcd,efgh,ijklmnop、qrst,+haha;what"; qDebug() << str.split(QRegExp("\\W+"));
谢谢,已经解决了; 还有一个小问题,就是如果正则表达式是直接使用的符号,如QRegExp("[,|,|、]"),这样通过split后会有空的字符串是怎么回事
onlylovercl 2017-07-04
  • 打赏
  • 举报
回复
这个为什么需要一次处理完成呢?效率?
大卫无限 2017-07-04
  • 打赏
  • 举报
回复
引用 3 楼 jklinux 的回复:
QString str = "abcd,efgh,ijklmnop、qrst,+haha;what"; qDebug() << str.split(QRegExp("\\W+"));

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧