我有QString
包含“(M001)”,我想删除文本中的括号。结果应为“M001”。我应该如何使用QRegExp
?
答案 0 :(得分:3)
如果你知道你的字符串总是有括号,你可以这样做:
str = str.mid(1); // Remove first character
str.chop(1); // Remove last character
否则你也可以这样做而不是使用正则表达式:
if (str.startsWith('(') && str.endsWith(')')) {
str = str.mid(1); // Remove first character
str.chop(1); // Remove last character
}
但如果您坚持使用QRegExp
,请尝试以下操作:
str.remove(QRegExp("^\\(|\\)$"));
或者这个:
str.replace(QRegExp("^\\((.*)\\)$"), "\\1");
编辑:如果您想从字符串中删除所有括号,可以尝试:
str.remove('(').remove(')');
或
str.remove(QRegExp("[()]"));
答案 1 :(得分:3)
我认为有两种可能的方法:
1.像这样使用QString::remove()
:
str.remove("(");
str.remove(")");
2.使用QRegExp类,如下所示:
str.remove(QRegExp("[()]"));
在两个变种中,我得到“M001”字符串。 当然,有一些限制:所有括号都将被删除。但看起来这就是你想要的,不是吗?