2016-05-09 13 views
0

私はカッコとこれらのかっこに含まれる単語をQStringに取り除こうとしています。手伝っていただけませんか?この例ではQStringのカッコとその内容を取り除くにはどうすればいいですか?

var1.at(0) = " MainWindow(QWidget *parent) : "; 

QStringList var2 = var1.at(0).split(QRegExp("\("), QString::SkipEmptyParts); 

、私が唯一である関数名を取得しようとしています:あなたが使用できる関数名を取得するには

QRegExp("("); 
QRegExp("\("); 
QRegExp("\\("); 
QRegExp("\(("); 
+0

ここでは本当に**何をしようとしていますか?文字列処理はロケット科学ではありませんが、最終的な目的は最終的な文字列で何かをすることです。それは何ですか? – IInspectable

+0

最終的な文字列ではありません、私は括弧付き正規表現を追加する方法を尋ねています – goGud

+0

"分割括弧"とは正確に何を意味していますか?あなたのサンプル文字列から期待される結果は何ですか? – bolov

答えて

1

MainWindow

を私はそれを解決することができませんでした関数名が文字列の最初の識別子である場合は、次のようになります。

QString s(" MainWindow(QWidget *parent) : "); 
QRegExp e("(\\w+)"); 
if(e.indexIn(s) != -1) { 
    qDebug() << e.cap(1); // MainWindow 
} 

「(」まで使用できる場合は、

QString s(" MainWindow(QWidget *parent) : "); 
QRegExp e("([^(]+)"); 
if(e.indexIn(s) != -1) { 
    qDebug() << e.cap(1).trim(); 
} 
+0

@bolov: "MainWindowである関数名を取得しようとしています"(c)author – AnatolyS

+0

**正規表現を使用しない**解決策は書く方が簡単で、安全に使用しやすく読む。文字列をトークン化することから、車をワックスづけして性的魅力を向上させることに至るまで、人々はあらゆるものに対して正規表現を使用しているようです。正規表現はいくつかの問題の大きなツールです。おそらくこれらの問題の1つではありません。 – IInspectable

関連する問題