C++ 删除QString中出现的所有特殊字符
如何删除QString中出现的所有特殊字符^和$ 我试过:C++ 删除QString中出现的所有特殊字符,c++,qt,qt5,C++,Qt,Qt5,如何删除QString中出现的所有特殊字符^和$ 我试过: QString str = "^TEST$^TEST$"; str = str.remove(QRegularExpression("[^$].")); 您没有逃出^。为了转义它,需要一个\,但是由于C字符串的缘故,也需要转义它。您还希望一个或多个事件与+匹配。 这个正则表达式应该可以工作:[\\^$]+ 因此,它必须是: QString str = "^TEST$^TEST$"; str = str.remove(QRegularE
QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[^$]."));
您没有逃出
^
。为了转义它,需要一个\
,但是由于C字符串的缘故,也需要转义它。您还希望一个或多个事件与+
匹配。
这个正则表达式应该可以工作:[\\^$]+
因此,它必须是:
QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[\\^$]+"));
by中所述的另一种可能性是:
因为
^
在开始时有一个特殊的含义,你必须从字面上理解它,奇怪的是我的输出是$$。有什么想法吗?!你必须逃出C++的。所以它应该看起来像str=str.remove(QRegularExpression(“[\\^$]+”);或者您可以对[]
中的字符重新排序,因为^
在开头只是一个特殊字符:str=str.remove(QRegularExpression([$^]+”)代码>@JoeP:很好,我没想过。
QString str = "^TEST$^TEST$";
str = str.remove(QRegularExpression("[$^]+"));