如何在QString中删除所有特殊字符^和$的出现? 我尝试过: QString str = "^TEST$^TEST$"; str = str.remove(QRegularExpression("[^$]."));
您忘记转义符号^。要转义它,需要使用\,但由于C字符串的原因,它也需要被转义。另外,您希望出现一次或多次匹配,可以使用+。 正则表达式应该是这样的:[\\^$]+,在线查看。所以应该是:QString str = "^TEST$^TEST$"; str = str.remove(QRegularExpression("[\\^$]+")); 根据Joe P在下面的评论中提到的,另一个可能性是: QString str = "^TEST$^TEST$"; str = str.remove(QRegularExpression("[$^]+")); 因为^在开头有特殊含义,所以你需要转义它以获取字面意思,在线查看。
您也可以尝试使用正则表达式,以便删除每个非字母数字字符: QString str = "$om<Mof*%njas" str = str.remove(QRegExp("[^a-zA-Z\\d\\s]"));
[]
中重新排序字符,因为^
只是特殊字符的开头:str = str.remove(QRegularExpression("[$^]+"));
- Joe P