删除QString中每个特殊字符的出现

时间:2017-06-22 09:16:54

标签: c++ qt qt5

如何删除QString中每个特殊字符^和$的出现?

我试过了:

QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[^$]."));

1 个答案:

答案 0 :(得分:3)

你错过了^。为了避免这种情况,需要\,但由于C字符串,还需要进行转义。您还希望一个或多个出现与+匹配。 此正则表达式应该有效:[\\^$]+see online

所以必须是:

QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[\\^$]+"));

comments below Joe P中提到的另一种可能性是:

QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[$^]+"));

因为^在开头只有一个特殊的含义,你必须逃避它才能真正地理解它,see online