首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QT中删除带有贪婪正则表达式的字符串

在QT中删除带有贪婪正则表达式的字符串
EN

Stack Overflow用户
提问于 2015-10-08 19:07:04
回答 1查看 275关注 0票数 0

谢谢你提前提供帮助。我对qt很陌生,所以请原谅我的新手问题。

我想用字符串中的正则表达式将image1="jdjddsj“替换为"im”。还有更多的xx=“.”的派对在我的字符串中,所以我想运行QRegExp贪婪,这似乎是不工作的。

代码语言:javascript
复制
QString str_commando;

str_commando = "python python.py image1=\"sonstzweiteil\" one! path=\"sonstwas\" image2=\"sonsteinanderes\" two!"

QString str(str_commando); // The initial string.
qDebug() << str_commando.remove(QRegExp ("age1=\"([^>]*)\""));

/* Set field */
ui->lineeCommand->setText(str_commando);

结果不幸的是: python 2!

代码语言:javascript
复制
 qDebug() << str_commando.remove(QRegExp ("age1=\"([^>]*)\""));

我以前试过。同样的结果。

我哪里出问题了?谢谢你提前帮忙!

解决方案:

代码语言:javascript
复制
qDebug() << str_commando.replace(QRegExp ("image1=\"([^\"]*)\""), "im");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 19:41:48

字符集[^>]包括"。这意味着

代码语言:javascript
复制
str_commando.remove(QRegExp ("age1=\"([^>]*)\""));

匹配age1=\"sonstzweiteil\" one! path=\"sonstwas\" image2=\"sonsteinanderes\"。如果您确信引号之间没有",则可以将正则表达式设置为最小值而不是贪婪值。另一个解决方案是将set [^>]设置为[^>"]。我也不知道你为什么禁止>

在查看了QString的文档之后,我认为您也可以这样做:

代码语言:javascript
复制
str_commando.replace(QRegExp("image1=\"([^\"]|\\\")*\""), "im");

或者如果你想要im="..."

代码语言:javascript
复制
str_commando.replace(QRegExp("image1=\"((?:[^\"]|\\\")*)\""), "im=\"\\1\"");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33024005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档