2

http://文字列のリストが与えられたとき、どれが有効なURLであるかを調べることに興味があります。私の最初のアプローチは、正規表現を使用して次のようにすることです。

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

もっと慣用的/自然/簡単な方法はありますか?

4

3 に答える 3

1

はい、 Uri.TryCreateを使用し、正常に解析された URI の Scheme プロパティをテストして、それが HTTP であることを確認します。

ただし、探していた URI がより大きなテキスト ブロックの部分文字列である場合は、正規表現を使用することをお勧めします。

于 2010-12-28T05:01:54.970 に答える
1

私は正規表現ベースのアプローチに行きますが、あなたのアプローチは私にはうまく見えます

于 2010-12-28T05:02:37.927 に答える
0

System.Uri クラスに組み込まれている解析を使用して、Url を検証できます。これには、Url に含まれるクエリ文字列を正しく処理できるという利点があり、.Net が Url として使用できる任意の文字列を解析できるはずです。

TryCreate を使用して各文字列の解析を試みた後、Uti.Scheme プロパティが HTTP uri であることを確認します (そうでない場合、ファイルシステム パスもフィルターを通過します)。

于 2010-12-28T05:01:11.027 に答える