QString使用QRegExp从字符串中删除“[1]”

时间:2013-07-16 23:29:49

标签: c++ qt

我有一个QString,我想删除[1],[123],[4556]

    QString myStr= "aaa bbb ccc .[1]";
    myStr = myStr.remove(QRegExp("\[\[0-9]\]");

但它不起作用,任何想法???

2 个答案:

答案 0 :(得分:0)

您的QRegExp不起作用。首先QT要求你根据你想要的内容来双重逃避一些角色。其次,你不能逃避范围括号。您需要双重escap用于您想要匹配的支架,并且范围括号无法逃脱:

QRegExp("\\[[0-9]\\]");

答案 1 :(得分:0)

这就是你需要的:

a.remove(QRegExp("\\[[0-9]+\\]"));

首先,你需要围绕外方括号的双转义序列,以指定那些实际显示在你的字符串中,然后你需要指定你想要匹配的范围[0-9]和事实此范围可能会显示一次或多次+