Próbuję wymyślić wyrażenie regularne, aby usunąć komentarze z instrukcji SQL.Wyrażenie regularne służące do usuwania komentarzy z instrukcji SQL
Ten regex prawie działa:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
Excepth że ostatnia część nie obsługuje "-" komentarze bardzo dobrze. Problemem jest obsługa łańcuchów SQL ograniczonych przez ''.
Na przykład, jeśli mam
SELECT ' -- Hello -- ' FROM DUAL
Nie powinien pasować, ale to dopasowanie.
To jest w ASP/VBscript.
Myślałem o dopasowaniu od prawej do lewej, ale nie sądzę, że silnik regex VBScript obsługuje to. Próbował także bawić się z negatywnym lookbehindem, ale wyniki nie były dobre.
Cześć Justin ... dzięki za pomoc. Nadal pozostaje problem z komentarzami wstawionymi, które nie rozpoczynają się na początku. Jak SELECT "- Hello -" FROM DUAL - komentarz, który powinien zostać usunięty –
Nie ma problemu i zapraszam do przepełnienia stosu. Pamiętaj, że sposób, w jaki można to docenić, polega na przegrywaniu i zaakceptowaniu odpowiedzi (zaznaczenie obok odpowiedzi). Więcej informacji można znaleźć w [Najczęściej zadawanych pytaniach], szczególnie [FAQ # HowToAsk] How To Ask –