C++アプリケーションで正規表現を実行するためにQtを使用しようとしています。 以前はC++でQtと同様の正規表現を行ってきましたが、これは難しいことが分かりました。QRegExpでC++で文字列の一部を取り込む
文字列の末尾にオプションの_#を付けた文字列を指定すると、その前に文字列の一部を抽出します。
例:
"blue_dog" should result "blue_dog"
"blue_dog_1" should result "blue_dog"
"blue_dog_23" should result "blue_dog"
これは私がこれまで持っているが、それはまだ動作しないコードです:
QString name = "blue_dog_23";
QRegExp rx("(.*?)(_\\d+)?");
rx.indexIn(name);
QString result = rx.cap(1);
私も運なしで多くのバリエーションで、次の追加オプションを試してみました。上のコードは常に「」と表示されます。
rx.setMinimal(TRUE);
rx.setPatternSyntax(QRegExp::RegExp2);
素晴らしい作品です!ありがとうTim。 – panofish