Qt 删除QString中的括号

Qt 删除QString中的括号,qt,replace,qstring,qregexp,Qt,Replace,Qstring,Qregexp,我有一个包含“(M001)”的QString,我想删除文本中的括号。结果应为“M001”。我应该如何使用QRegExp进行此操作?如果您知道字符串中总是有括号,您可以执行以下操作: str=str.mid(1);//删除第一个字符 str.chop(1);//删除最后一个字符 否则,您也可以这样做,而不是使用正则表达式: if(str.startsWith(')(')和&str.endsWith(')){ str=str.mid(1);//删除第一个字符 str.chop(1);//删除最后一

我有一个包含“(M001)”的
QString
,我想删除文本中的括号。结果应为“M001”。我应该如何使用
QRegExp
进行此操作?

如果您知道字符串中总是有括号,您可以执行以下操作:

str=str.mid(1);//删除第一个字符
str.chop(1);//删除最后一个字符
否则,您也可以这样做,而不是使用正则表达式:

if(str.startsWith(')(')和&str.endsWith(')){
str=str.mid(1);//删除第一个字符
str.chop(1);//删除最后一个字符
}
但如果您坚持使用
QRegExp
,请尝试以下方法:

str.remove(QRegExp(“^\\(|\\)$”);
或者这个:

str.replace(QRegExp(“^\\(.*)\\)$”)“\\1”);
编辑:如果要删除字符串中的所有括号,可以尝试:

str.remove('(').remove(');

str.remove(QRegExp(“[()]”);

我看到两种可能的方法:

1.像这样使用:

str.remove("(");
str.remove(")");
str.remove(QRegExp("[()]"));
2.像这样使用类:

str.remove("(");
str.remove(")");
str.remove(QRegExp("[()]"));
在这两种变体中,我都得到“M001”字符串。
当然,也有一些限制:所有的括号都将被删除。但这似乎是您想要的,不是吗?

我想使用QRegExp。我试过了,但不起作用。@user1020141更正了我代码中的一个错误。再试一次。我不想使用str.remove(“)”;所以我问了QRegExp,它是有效的。非常感谢。您希望正则表达式删除所有括号,还是只删除字符串开头的“(”和字符串结尾的“)”?