2011-12-21 5 views
2

C#での正規表現そのタイトルにhelloを持つすべての投稿を取得するためにビルド(エスケープ)JavaScriptのシナリオが

db.Posts.find({ "title" : /hello/i }) 

MongoDBのクエリに渡され、全体のクエリは次のようになります。

キーワードに特殊文字(\または(など)が含まれていると、js regexpが正しく作成されません。

これを解析するライブラリはC#ですか?

答えて

1

あなたはRegex.Escapeを探しています。

Javascriptと.Netは異なる正規表現エンジンを使用しますが、.NetエスケープはJS正規表現には十分だと思います。

+0

はい、.NETフレーバは実質的にJavaScriptのスーパーセットです。 JSで特別な意味を持つ文字も.NETでは特殊文字であり、正しくエスケープされます。 –

+0

いくつかのケースを試してみてください。 –

+0

@DannyChen:単純なケースでは、これは確実に機能します。それは私が確信していないコーナーケースです。 – SLaks

関連する問題