Je tente de réduire une requête SQL via regex. Mon but est essentiellement de saisir ce qui est entre FROM et ORDER BY, si ORDER BY existe. Donc, par exemple pour la requête: SELECT * FROM TableA WHERE ColumnA=42 ORDER BY ColumnB
il devrait capturer TableA WHERE ColumnA=42
, et il devrait également capturer si l'expression ORDER BY n'est pas là.Exclusion d'une sous-chaîne spécifique d'une expression régulière
Le plus proche que j'ai pu venir est SELECT (.*) FROM (.*)(?=(ORDER BY))
qui échoue sans ORDER BY.
J'espère qu'il me manque quelque chose d'évident. J'ai martelé dans Expresso depuis une heure en essayant d'obtenir ceci.
Cela a fonctionné avec une petite modification (déplacer l'espace entre la deuxième expression de capture et l'ordre par capture dans l'ordre par capture.Merci beaucoup –
Vous êtes très bienvenu, et oui, vous avez raison .. Je genre de raté celui-là: D mettra à jour la réponse (si je peux) avec elle) –