Я пытаюсь придумать регулярное выражение для удаления комментариев из оператора SQL.
Это регулярное выражение почти работает:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
За исключением того, что последняя часть не очень хорошо обрабатывает комментарии "--". Проблема заключается в обработке строк SQL, разделенных символом ''.
Например, если у меня есть
SELECT ' -- Hello -- ' FROM DUAL
Это не должно совпадать, но совпадает.
Это в ASP/VBscript.
Я думал о сопоставлении справа налево, но я не думаю, что механизм регулярных выражений VBScript поддерживает это. Также пробовал возиться с негативным взглядом назад, но результаты были не очень хорошими.