Регулярное выражение для извлечения запроса 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)(.*)(;)$, В будущем яЯ хочу расширить это со всеми (возможными) командами.

Ищите начальное совпадение с помощью: (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.group() now contains the full SQL command
}

Заранее спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос