Регулярное выражение для извлечения запроса SQL
Существует ли регулярное выражение, извлекающее SQL-запросы из строки? яНЕ заинтересованы в проверке любого синтаксиса SQL, а точнее и только извлечения набора команд SQL. Это для гибкого анализа данного файла / строки SQL.
Ниже приведен следующий пример файла / строки SQL:
SELECT
*
FROM
test_table
WHERE
test_row = 'Testing ; semicolon';
SELECT * FROM another_test_table;
INSERT INTO
table_name
VALUES
(value1,'value which contains semicolon ;;;;',value3,...);
Некоторым примером псевдокода будет:^(UPDATE|SELECT|INSERT INTO)(.*)(;)$
, В будущем я хочу расширить это всеми (возможными) командами.
any character
(включая пробелы и переводы строки)Останавливаться на;
, который ограничивает SQL-запрос.Всякий раз, когда это возможно через регулярное выражение, следующий код Java может извлечь все команды SQL:
final String regex = "LOOKING_FOR_THIS_ONE";
final Pattern p = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = p.matcher(content);
while (matcher.find()) {
// matcher.g,roup() now contains the full SQL command
}
Заранее спасибо!