为什么我的sql注释解析EReg表达式不能编译?
我有一个用Haxe编写的sql查询工具,我正在尝试向代码中添加一些sql注释支持。当前,如果用户有任何注释(单行或多行),服务器端的查询将失败。因此,我试图编写一个简单的方法,它接受用户输入的sql语句,并用“”替换任何注释。这里有一个方法为什么我的sql注释解析EReg表达式不能编译?,sql,comments,haxe,neko,Sql,Comments,Haxe,Neko,我有一个用Haxe编写的sql查询工具,我正在尝试向代码中添加一些sql注释支持。当前,如果用户有任何注释(单行或多行),服务器端的查询将失败。因此,我试图编写一个简单的方法,它接受用户输入的sql语句,并用“”替换任何注释。这里有一个方法 static function removeComments(snippet: SqlSnippet): SqlSnippet { var rComment: EReg = ~/(--[^\n]*)|(/\*[\w\W]*?(?=\*/)\*/)/;
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:无效字符'\'
[在0.2秒内完成,退出代码为1]
此消息引用的“\”是我试图用来转义第二组“()”开头的“*”元字符的“\”
有人知道为什么nako不会在这个EReg中编译“/*”?问题不在于
\*
。需要转义的是/
尝试将您的EReg更改为
~/(-[^\n]*)|(\/\*[\w\w]*?(?=\*\/)\*\/)/
问题不在于\*
。需要转义的是/
请尝试将您的EReg更改为
~/(-[^\n]*)|(\/\*[\w\w]*?(?=\*\/)\*\/)/
,以解决我的问题!谢谢你解决了我的问题!非常感谢。