查看完整版本: [-- 关于字符串的查找的求助 --]

QTCN开发网 -> Qt基础编程 -> 关于字符串的查找的求助 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

darlings 2009-12-02 10:51

关于字符串的查找的求助

一个主字符串QString,两个标记字符串QStringA,QStringB,怎么把QString里所有QStringA,QStringB中间的字符串提取出来呢?谢谢。

dbzhang800 2009-12-02 10:56
这是 正则表示式(regular expression) 的强项。

具体到Qt中, 就是QRegExp

darlings 2009-12-02 11:03
不会用正则,能不能指点一下?谢谢。

robertkun 2009-12-03 11:47
学习

darlings 2009-12-03 14:12
找到帖发现昨天就是你回的呀。。。
我不太会正则,还有别的解法么?

dbzhang800 2009-12-03 14:25
不想学正则,只能用 QString 的 find 自己查找了

darlings 2009-12-03 15:20
error C2039: “find”: 不是“QString”的成员
不知道为什么会出这个错啊,#include <qstring.h>这个也加了呀。
    QString a = "abcdefg123";
    QString b = "abc";
    QString c = "123";
    long offset= a.find(b);

foxyz 2009-12-03 15:22
正则表达式学一下有好处的, QT介绍的比较详细的。一个小时就能看完了

foxyz 2009-12-03 15:24
QString 现在是用indexOf函数,而不是find来处理查找的。find是Qt4之前版本的

dbzhang800 2009-12-03 15:26
引用第6楼darlings于2009-12-03 15:20发表的  :
error C2039: “find”: 不是“QString”的成员
不知道为什么会出这个错啊,#include <qstring.h>这个也加了呀。
    QString a = "abcdefg123";
    QString b = "abc";
    QString c = "123";
.......


不好意思,和python记混了,Qt中是 indexOf

darlings 2009-12-03 15:30
那我再去弄一下吧,手里的QT帮助文档都不知道是哪个版本的了,也好旧了。

darlings 2009-12-03 15:41
太感谢了,现在可以用了。
只是再问一下,怎么把第二个,第三个,直到最后一个符合条件的都找出来呢?

dbzhang800 2009-12-03 15:44
从上次结束处继续查找

多看看手册

darlings 2009-12-03 15:53
我的手册上没indexof...不知道从哪能下到最新的呢?

dbzhang800 2009-12-03 16:07
Qt自带相应版本的Manual,通过assistant查看
在线版
http://qt.nokia.com/doc/4.6

darlings 2009-12-03 16:48
谢谢~
还有个不明白的问题,我用int型的转QString型:
        QString fileName;
        fileName.number(1);
但是每次fileName都是空,不知道是哪里错了,能指正一下吗?

dbzhang800 2009-12-03 16:56
这个是 static member

QString fileName = QString::number(1);

或者
fileName.setNum(1)

。。。

darlings 2009-12-03 17:02
汗,原来是这样啊。。。
再帮我看我刚刚做的一个循环查找字符串的代码吧。
long offset= 0;
    for(int i=0; i<nQuestionsCount; i++)
    {    
        QString strSource = wholeText;
        QString strFlag1 = tr("{str1}");
        QString  strFlag2= tr("str2");
        offset= strSource.indexOf(strFlag1, offset);
        offset+= strFlag1.length();
        QString temp= strSource.mid(offset,strSource.length()-offset);
        offset= temp.indexOf(strFlag2);
        temp= temp.left(offset);
                                           保存temp,继续下次。。。
            }
但是好像弄来弄去找到的都是同一个字符串,不知道是哪里写错了,再帮我指正一下吧 :)

darlings 2009-12-03 17:49
终于看了你那个在线文档后,自己弄好了。。。谢谢了啊,帮了我这么多忙。


查看完整版本: [-- 关于字符串的查找的求助 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled