2013-02-25 66 views
1

我有一个在哈克斯编写的查询工具,我试图添加一些sql注释支持的代码。目前,如果用户有任何评论(单行或多行),则查询在服务器端失败。因此,即时通讯尝试编写一个简单的方法,它接受用户输入的sql并用“”替换任何注释。这里是方法为什么我的sql注释解析EReg表达式不能编译?

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中的“/ *”?

回答

1

问题不是\*。这是/需要逃脱。

尝试将您的EReg更改为~/(--[^\n]*)|(\/\*[\w\W]*?(?=\*\/)\*\/)/

+0

解决了我的问题!谢谢 – sWARm 2013-02-26 14:14:43

相关问题