#include <QRegExp>
#include <QDebug>
int main()
{
QRegExp rx("(.*)[^\\]\\[\\d+\\]$");
qDebug() << rx.indexIn("AA[45]");
qDebug() << rx.cap(1);
}
名前の前に「\」がない場合、「[」記号の前に名前を一致させるために QRegExp を記述する必要があります。この場合、「AA」と表示されるはずですが、何も表示されません。[^\\] 部分に 2 つのスラッシュを追加すると、「A」のみに一致します"AA\\[45]"
が、この場合は何も一致しない必要があります。
#include <QRegExp>
#include <QDebug>
int main()
{
QRegExp rx("(.*)[^\\\\]\\[\\d+\\]$");
qDebug() << rx.indexIn("AA\[45]");
qDebug() << rx.cap(1);
}
このケースは何にも一致しないはずですが、「A」が出力されます。