У меня есть QString
, содержащий "(M001)", и я хочу удалить круглые скобки в тексте. Результат должен быть "M001". Как мне использовать QRegExp
для этого?
Удалить скобки в QString
comment
Вы хотите, чтобы регулярное выражение удаляло все круглые скобки или только '(' в начале строки и ')' в конце строки?
- person jotik   schedule 19.05.2016
Ответы (2)
Я вижу два возможных способа сделать это:
1.Используя QString::remove()
следующим образом:
str.remove("(");
str.remove(")");
2. Используя класс QRegExp следующим образом:
str.remove(QRegExp("[()]"));
В обоих вариантах я получаю строку «M001». Конечно, есть некоторые ограничения: все круглые скобки будут удалены. Но, похоже, это то, что вы хотите, не так ли?
person
t3ft3l--i
schedule
18.05.2016
Я не хочу использовать str.remove()); поэтому я спросил QRegExp, и он работает. большое спасибо.
- person ; 18.05.2016
Если вы знаете, что в вашей строке всегда есть круглые скобки, вы можете просто сделать что-то вроде:
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");
EDIT: Если вы хотите удалить ВСЕ круглые скобки из строки, вы можете попробовать:
str.remove('(').remove(')');
or
str.remove(QRegExp("[()]"));
person
jotik
schedule
18.05.2016
Я хочу использовать QRegExp. Я пытаюсь это сделать, но это не работает.
- person ; 18.05.2016
@user1020141 user1020141 Исправлена ошибка в моем коде. Попробуйте еще раз.
- person jotik; 18.05.2016