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 回答