我有一个用Haxe编写的sql查询工具,我试图在代码中添加一些sql注释支持。目前,如果用户有任何注释(单行或多行),则查询在服务器端失败。因此,我试图编写一个简单的方法,该方法接受用户输入的sql并用“”替换任何注释。这是方法
static function removeComments(snippet: SqlSnippet): SqlSnippet {
var rComment: EReg = ~/(--[^\n]*)|(/\*[\w\W]*?(?=\*/)\*/)/;
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中编译“/ *”?
答案 0 :(得分:1)
问题不在于\*
。 /
需要转义。
尝试将您的EReg更改为~/(--[^\n]*)|(\/\*[\w\W]*?(?=\*\/)\*\/)/
。