Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 删除QString中出现的所有特殊字符_C++_Qt_Qt5 - Fatal编程技术网

C++ 删除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中出现的所有特殊字符^和$

我试过:

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("[$^]+"));