Есть ли регулярное выражение, которое извлекает SQL-запросы из строки? Я NOT заинтересован в проверке любого синтаксиса 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)(.*)(;)$
. В будущем я хочу расширить это с помощью всех (возможных) команд.
- Посмотрите на стартовом матче с либо: (ДОПОЛНЕНО | ВЫБРАТЬ | 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
}
Спасибо заранее!
Не затрудняйте свою жизнь, поместите запросы в файл свойств (с любым ключом), загрузите его и выполните итерацию над valueSet. –
Это не возможное решение, так как мне нужно работать, я получаю, я не могу требовать формат ввода. Вход представляет собой текстовый файл, содержащий команды SQL, которые мне нужно извлечь/проанализировать. – Velth
Любой шанс для тех, кто создал эту строку, чтобы включить ... ? Использование простого текста для структурированной информации и принуждение разработчика к работе с ним кажется преднамеренной жестокостью. –