1

Haxe で記述された SQL クエリ ツールがあり、SQL コメント サポートをコードに追加しようとしています。現在、ユーザーにコメント (1 行または複数行) がある場合、クエリはサーバー側で失敗します。したがって、ユーザーが入力したSQLを受け取り、コメントを「」に置き換える簡単なメソッドを作成しようとしています。ここに方法があります

static function removeComments(snippet: SqlSnippet): SqlSnippet {

  var rComment: EReg = ~/(--[^\n]*)|(/\*[\w\W]*?(?=\*/)\*/)/;

  var resultSql = rComment.replace(snippet.sql, "");

  snippet.sql = resultSql;

  return snippet;

}

私の問題はこの方法ではありませんが、そのネコはそれをコンパイルしません。このメソッドをコンパイルしようとすると、次のメッセージが表示されます。

src/skyview/SqlSnippetParser.hx:30: character 33 : Invalid character '\' [Finished in 0.2s with exit code 1]

このメッセージが参照している「\」は、「()」の 2 番目のセットの先頭にある「*」メタ文字をエスケープするために使用しようとしている「\」です。

nako がこの EReg で "/*" をコンパイルしない理由を知っている人はいますか?

4

1 に答える 1

1

問題はありません\*/エスケープする必要があります。

EReg を に変更してみてください~/(--[^\n]*)|(\/\*[\w\W]*?(?=\*\/)\*\/)/

于 2013-02-26T04:31:37.997 に答える