【问题标题】:Why my sql comment parsing EReg expression not compile?为什么我的 sql 注释解析 EReg 表达式无法编译?
【发布时间】:2013-02-25 21:20:37
【问题描述】:

我有一个用 Haxe 编写的 sql 查询工具,我试图在代码中添加一些 sql 注释支持。当前,如果用户有任何 cmets(单行或多行),则服务器端的查询将失败。因此,我试图编写一个简单的方法,该方法采用用户输入的 sql 并用“”替换任何 cmets。这是方法

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 中编译“/*”吗?

【问题讨论】:

    标签: sql comments haxe neko


    【解决方案1】:

    问题不是\*。是/,需要转义。

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

    【讨论】:

    • 这解决了我的问题!谢谢
    猜你喜欢
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2016-01-21
    • 2021-09-16
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多