Я пытаюсь заменить текст, который содержит URL-адреса, текстом на теги, и я пытаюсь использовать что-то вроде этого, но я просто не понимаю, почему это не работает, может быть, я слишком устал тоже это вижу. Вот мой тест:
[Test]
public void Check() {
string expUrl = @"^(https?://)"
+ @"?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //user@
+ @"(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP- 199.194.52.184
+ @"|" // allows either IP or domain
+ @"([0-9a-z_!~*'()-]+\.)*" // tertiary domain(s)- www.
+ @"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]" // second level domain
+ @"(\.[a-z]{2,6})?)" // first level domain- .com or .museum is optional
+ @"(:[0-9]{1,5})?" // port number- :80
+ @"((/?)|" // a slash isn't required if there is no file name
+ @"(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
const string url = "http://www.google.com";
var b = Regex.IsMatch(url, expUrl);
Assert.IsTrue(b);
var text = string.Format("this is a link... {0} end of link", url);
var resul = Regex.Match(text, expUrl);
Assert.IsTrue(resul.Success);
}
Почему переменная url проходит проверку IsMatch, но не проходит проверку соответствия? заранее спасибо.