我正在创建一个 asp.net mvc 应用程序,其中有一个文本框,用户可以在其中键入可能包含一些 url 的文本,我想在服务器上解析该文本并提取其中所有可用的 url。
可能的文本
abc.com, xyz.com, http://foo.com
baar.com
http://baz.com, www.foobar.com
mosso.com
http://subfoo.foo.com
bar.baz.com
foobar.net baaz2.com morebaaz.com
预期输出数组
abc.com
xyz.com
foo.com
baar.com
baz.com
foobar.com
mosso.com
subfoo.foo.com
bar.baz.com
foobar.net
baaz2.com
morebaaz.com
这个怎么样:
string[] domains = text.Replace(" ",",").Replace("http://", "").Replace("www.", "").Replace("ftp://", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
然后你可以检查每个字符串的有效 url
public static bool isValidUrl(string url)
{
string pattern = @"^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$";
Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
return reg.IsMatch(url);
}
希望对你有帮助
编辑:抱歉,验证失败..现在修复...
我是一名优秀的程序员,十分优秀!