Bonjour,
Je cherche à récupérer les différentes parties d'une requête SQL.
Pour la partie select, ça fonctionne, mais pour le from je n'y arrive pas.
pour une requête "select .. from .. where .. order by...", je veux avoir ce qui se trouve entre le from et le where. Le where et le order by n’étant pas toujours présent.
J'ai le code suivant:
Mais le where et le order by apparaissent quand même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 String newQuery = "select ... from ... where ... order by ..."; Pattern from =Pattern.compile(".*from (.*) *(where.*)? *(order by.*)?"); Matcher m=from.matcher(newQuery); if(m.find()) System.out.println(m.group(1));
Je pense que la partie (.*) va jusqu'au bout de la chaine mais je ne trouve pas comment lui dire de s’arrêter s'il y a un where ou un order by
Ma question est elle claire?
Merci par avance.
Partager