Sto cercando di ottenere un'espressione regolare per rimuovere i commenti da un'istruzione SQL.Espressione regolare per rimuovere i commenti dall'istruzione SQL
Questa espressione regolare quasi funziona:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
Excepth che l'ultima parte non gestisce "-" commenti molto bene. Il problema è la gestione delle stringhe SQL, delimitate da "".
Per esempio, se ho
SELECT ' -- Hello -- ' FROM DUAL
Non dovrebbe corrispondere, ma è corrispondenza.
Questo è in ASP/VBscript.
Ho pensato di abbinare da destra a sinistra ma non credo che il motore regex di VBScript lo supporti. Anche provato a giocherellare con lookbehind negativo ma i risultati non erano buoni.
Hi Justin ... grazie per l'aiuto. Rimane il problema con i commenti in linea che non iniziano all'inizio. Come SELECT '- Hello -' FROM DUAL - commento che dovrebbe essere rimosso –
Nessun problema, e benvenuti allo stack overflow. Per favore ricorda che il modo di mostrare apprezzamento qui è attraverso upvotes e risposte accettate (segno di spunta accanto alla risposta). Maggiori informazioni possono essere trovate nelle [FAQ], in particolare [FAQ # HowToAsk] How To Ask –