为什么我的sql注释解析EReg表达式没有编译



我有一个用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]*?(?=*/)*/)/

相关内容

  • 没有找到相关文章