Expresión regular para extraer la consulta SQL.

¿Hay una expresión regular que extrae consultas SQL de una cadena? soyNO Interesado en validar cualquier sintaxis SQL, en lugar de extraer solo una selección de comandos SQL. Esto para analizar un archivo / cadena SQL dado de una manera flexible.

Se da el siguiente ejemplo de archivo / cadena 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,...);

Un ejemplo de pseudocódigo sería:^(UPDATE|SELECT|INSERT INTO)(.*)(;)$. En el futuro, estoy buscando extender esto con todos los comandos (posibles).

Busque una partida inicial con: (ACTUALIZAR | SELECT | INSERT | INTO)Cero o masany character (incluyendo espacios en blanco y nuevas líneas)Detente en;, que delimita la consulta SQL.

Siempre que esto sea posible a través de una expresión regular, el siguiente código Java puede extraer todos los comandos 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
}

¡Gracias por adelantado!

Respuestas a la pregunta(5)

Su respuesta a la pregunta