私はQString
からSQL
文を削除しようとしています。 SQL
命令はすべて大文字です。私は名前にスペースとしてアンダースコアですべて小文字の列名のみを持っています。 QString
が含まれている場合がありますサンプルのよう:Perl互換の正規表現「」スペースと 『(』 『)』
CREATE TABLE IF NOT EXISTS activated_alerts(id INTEGER PRIMARY KEY AUTOINCREMENT, date_and_time TEXT, system_state TEXT, alarm_no_185 BOOL NOT NULL, alarm_no_4 BOOL NOT NULL, alarm_no_5 BOOL NOT NULL, alarm_no_2 BOOL NOT NULL, alarm_no_102 BOOL NOT NULL, alarm_no_7 BOOL NOT NULL, alarm_no_27 BOOL NOT NULL, alarm_no_120 BOOL NOT NULL, alarm_no_103 BOOL NOT NULL, alarm_no_190 BOOL NOT NULL, alarm_no_30 BOOL NOT NULL, alarm_no_31 BOOL NOT NULL, alarm_no_32 BOOL NOT NULL, alarm_no_33 BOOL NOT NULL, alarm_no_34 BOOL NOT NULL, alarm_no_35 BOOL NOT NULL)
私は^[A-Z]+$
を試してみましたが、私はゼロのマッチを取得しています。
QRegularExpression re("^[A-Z]+$");
QRegularExpressionMatch match = re.match(m_activatedAlertsSQLStatement);
if(match.hasMatch())
{
qDebug() << "CAPTURED: " << match.capturedTexts();
}
がアンカー "^" と "$" を削除し、globalMatch()を使用しQRegularExpressionMatchIteratorクラスの。 –
@lbarrosは、最初の大文字の 'CREATE'しか見つけません。 – Barracuda
使用QRegularExpressionMatchIteratorクラスが一致するすべての可能な一致 –