HTTP Acceptヘッダーを解析するための提案(または正規表現)はありますか?
ASP.NETMVCでコンテンツタイプのネゴシエーションを実行しようとしています。組み込みの方法はないようですが(ここには多くの考え方があるので問題ありません)、構文解析は完全に簡単ではなく、誰かがすでに行っている場合は、車輪の再発明をしたくありません。それはうまく、共有する用意があります。
HTTP Acceptヘッダーを解析するための提案(または正規表現)はありますか?
ASP.NETMVCでコンテンツタイプのネゴシエーションを実行しようとしています。組み込みの方法はないようですが(ここには多くの考え方があるので問題ありません)、構文解析は完全に簡単ではなく、誰かがすでに行っている場合は、車輪の再発明をしたくありません。それはうまく、共有する用意があります。
この記事を見たことがありますか?これは、Accept ヘッダーを解析し、その後それを使って何か役に立つことを行うための、かなり包括的な実装を提供します。
ここでphpで別の実装を見つけました
xml.com の記事を読んだ後、Accept ヘッダーの関数を自分で作成しないことにしました ;)
幸いなことに、記事は優れたライブラリを指しています: https://code.google.com/p/mimeparse/ - 私の場合、Node.js モジュールとして必要です: https://github.com/kriskowal/mimeparse
RFCは非常に複雑です。これらのルールに従う正規表現の場所を文字どおりにすると、数行の長さになります。
すでに Accept-header があり、引用符とパラメーターを無視する場合は、次のようにして各ペアを一致させることができます。
/([^()<>@,;:\\"\/[\]?={} \t]+)\/([^()<>@,;:\\"\/[\]?={} \t]+)/
*
文字クラスに含まれているため、正規表現に特別なケースは必要ありません。