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 で "/*" をコンパイルしない理由を知っている人はいますか?