【发布时间】:2012-03-30 05:34:53
【问题描述】:
我正在尝试提出一个正则表达式来从 SQL 语句中删除 cmets。
这个正则表达式几乎可以工作:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
除了最后一部分不能很好地处理“--”cmets。问题是处理 SQL 字符串,用 '' 分隔。
例如,如果我有
SELECT ' -- Hello -- ' FROM DUAL
它不应该匹配,但它是匹配的。
这是在 ASP/VBscript 中。
我考虑过从右到左匹配,但我认为 VBScript 的正则表达式引擎不支持它。还尝试摆弄负面的后视,但结果并不好。
【问题讨论】: