1
我試圖從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類匹配所有可能的匹配 –