# Regex zur auswertung von SQL Statements



## dngfng (19. Feb 2010)

Hallo erst mal,

ich versuche auszuwerten auf welche Tabellen ein SQL läuft.

z.b. select ... from schema.x, schema.z where ....


Da ich ausschlisslich den Teil auswerten will zwischen from und einen optionelen where, habe ich bis jetzt folgendes java regex zusammen gekleistert. Ich glaube es funktioniert aber nicht so richtig.

Die Tabllen nach dennen gesucht werden sollen kommen aus einer array.

string table = tables_; 

".*from\\s*" +table+".*[where].*"

Ich bin mir absolut nicht sicher ob dies so richtig ist oder wie man es macht.

Danke in voraus._


----------



## Noctarius (19. Feb 2010)

```
select.*from(.*?)(where|;)
```

Group 1 hält dann die noch komma-separierte Liste an Tables.

Damit kannst du ein Regex direkt testen -> RegEx: online regular expression testing


----------



## dngfng (19. Feb 2010)

Danke für die Antwort - leider habe ich mich wohl etwas verworren ausgedrückt.

Ich habe bereits eine Array mit Tabellen, nun will ich ein bereits bestehendes SQL untersuchen ob dies die Tabellen enthält.

Könnt ihr mir bitte da weiterhelfen.


----------



## dngfng (19. Feb 2010)

select.*from(.*"+tabelname+".*)(where|;|$)

Danke für die Hilfe ich habe es selbst hinbekommen.
Die meisenten sql kommen leider ohne ; hier an daher habe ich noch $ für end off string hinzugefügt.


----------

