删除QString中的括号

时间:2016-05-18 07:39:00

标签: qt replace qstring qregexp

我有QString包含“(M001)”,我想删除文本中的括号。结果应为“M001”。我应该如何使用QRegExp

2 个答案:

答案 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”字符串。 当然,有一些限制:所有括号都将被删除。但看起来这就是你想要的,不是吗?