我正在尝试使用正则表达式从SQL语句中删除注释.
这个正则表达式几乎可以工作:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
Run Code Online (Sandbox Code Playgroud)
除了最后一部分不能很好地处理" - "评论.问题是处理SQL字符串,用''分隔.
例如,如果我有
SELECT ' -- Hello -- ' FROM DUAL
Run Code Online (Sandbox Code Playgroud)
它不应该匹配,但它匹配.
这是在ASP/VBscript中.
我想过从右到左匹配,但我不认为VBScript的正则表达式引擎支持它.也试图摆弄负面的背后,但结果并不好.