我有一个用Haxe编写的sql查询工具,我正在尝试为代码添加一些sql注释支持。目前,如果用户有任何评论(单行或多行(,则服务器端的查询将失败。因此,我试图编写一个简单的方法,它接受用户输入的sql,并将任何注释替换为"。这是的方法
static function removeComments(snippet: SqlSnippet): SqlSnippet {
var rComment: EReg = ~/(--[^n]*)|(/*[wW]*?(?=*/)*/)/;
var resultSql = rComment.replace(snippet.sql, "");
snippet.sql = resultSql;
return snippet;
}
我的问题不是这个方法,而是neko不会编译它。当我试图编译这个方法时,我得到了这样的消息:
src/skyview/SqlSnippetParser.hx:30: character 33 : Invalid character ''
[Finished in 0.2s with exit code 1]
该消息所指的"\"是我试图用来转义第二组"(("开头的"*"元字符
有人知道nako为什么不编译这个EReg中的"/*"吗?
问题不在于*
。需要对/
进行转义。
尝试将EReg更改为~/(--[^n]*)|(/*[wW]*?(?=*/)*/)/
。