以下は、不要なクエリ文字列 (excludeList に存在するもの) を削除するための C#2.0 コードで記述された正規表現であり、ページのクエリ文字列から除外され、私にとっては正常に機能しています。
string querystring = string.Empty;
string excludeList = "cid,incid,h";
querystring = Regex.Replace(Regex.Replace(Regex.Replace(HttpContext.Current.Request.Url.Query, @"^\?", "&"), "&(" + excludeList.Replace(",", "|") + ")=[^&]*", "", RegexOptions.IgnoreCase), "^&", "?");
ここで、正規表現を変更して、excludeList に以下が含まれている場合、ページのクエリ文字列に < または > がある場合にエンコードするようにします。
string excludeList = "cid,incid,h,<,>";
たとえば、ページのクエリ文字列に何かが含まれている場合、適切な #343script#545 にエンコードする必要があります (例)
エンコーディングを処理するために必要な変更を提案してください。
ありがとう。
編集:
言う
HttpContext.Current.Request.Url.Query = "http://localhost:80/faq.aspx?faqid=123&cid=5434&des=dxb&incid=6565&data=<sam>";
string excludeList = "cid,incid,h,<,>";
上記の正規表現を上記のクエリ文字列変数に適用すると、以下のようにレンダリングされます
string querystring = Regex.Replace(Regex.Replace(Regex.Replace(HttpContext.Current.Request.Url.Query, @"^\?", "&"), "&(" + excludeList.Replace(",", "|") + ")=[^&]*", "", RegexOptions.IgnoreCase), "^&", "?");
querystring = "?faqid=123&des=dxb&data=%3C%20sam%20%3E";
上記のすべてが正常に機能するようになりました。上記の正規表現を使用して「<」と「>」をエンコードしたいと思います。