1

我有一个用 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 中编译“/*”?

4

1 回答 1

1

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

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

于 2013-02-26T04:31:37.997 回答