2013-07-16 4 views

ответ

0

Ваш QRegExp не работает. Первый QT требует, чтобы вы удвоили некоторые символы в зависимости от того, что вы хотели бы достичь. Во-вторых, вы не должны избегать скобок диапазона. Вам нужно двойные ЭСКАТО кронштейн вы хотите, чтобы соответствовать и не бежать за диапазон кронштейн:

QRegExp("\\[[0-9]\\]"); 
+0

Это не Qt, который требует двойного выхода, это C++. Если вам нужна обратная косая черта в обычном строковом литерале, вам нужно ее избежать. – Mat

+0

@Mat: true. QT иногда требует этого, даже если C++ не будет. Не в этом случае. –

0

Это то, что вам нужно:

a.remove(QRegExp("\\[[0-9]+\\]"));

Во-первых, вам нужно двойные управляющие последовательности по всем внешние квадратные скобки, чтобы указать, что они будут отображаться в вашей строке, а затем вам нужно указать диапазон, который вы хотите сопоставить [0-9], и тот факт, что этот диапазон может отображаться один или несколько +.