在.NET中查找URL?

时间:2010-12-28 04:50:12

标签: .net url string-parsing

鉴于字符串列表,我有兴趣找到哪些是有效的http://网址。我的第一种方法是使用正则表达式并执行以下操作:

var urls = strs.Where(str => urlRegex.matches(str));

是否有更惯用/自然/简单的方法呢?

3 个答案:

答案 0 :(得分:1)

是的我会使用Uri.TryCreate然后测试成功解析的URI的Scheme属性以确保它是HTTP。

但是,如果您要查找的URI是较大文本块的子字符串,则可以使用正则表达式。

答案 1 :(得分:1)

我会采用基于正则表达式的方法,你的方法看起来很好

答案 2 :(得分:0)

您可以使用System.Uri Class内置的解析来验证Urls。这样可以正确处理Url中包含的查询字符串,并且应该能够解析.Net可以用作Url的任何字符串。

使用TryCreate尝试解析每个字符串后,检查Uti.Scheme属性是否为HTTP uri(否则文件系统路径也会通过过滤器)。