7

私は正常に動作する次のコードを持っていますが、サイトアドレスを変数に置き換える必要があります...

string url = HttpContext.Current.Request.Url.AbsoluteUri;  // Get the URL

bool match = Regex.IsMatch(url, @"(^|\s)http://www.mywebsite.co.uk/index.aspx(\s|$)");

私は以下を試しましたが、うまくいきません、アイデアはありませんか?

string url = HttpContext.Current.Request.Url.AbsoluteUri;  // Get the URL
string myurl = "http://www.mywebsite.co.uk/index.aspx";

bool match = Regex.IsMatch(url, @"(^|\s)"+myurl+"(\s|$)");
4

1 に答える 1

13

あなたは行方不明です@

bool match = Regex.IsMatch(url, @"(^|\s)" + myurl + @"(\s|$)");

@追加が必要な理由は、@がその直後の文字列リテラルにのみ適用されるためです。残りの行全体には適用されません。

URLをエスケープすることも検討する必要があります。

bool match = Regex.IsMatch(url, @"(^|\s)" + Regex.Escape(myurl) + @"(\s|$)");
于 2013-01-21T10:35:28.720 に答える