6

アウトの顧客はドメイン名からウェブサイトを入力することができます。また、連絡先からメールアドレスを入力することもできます。

どのウェブサイトのwhooseドメインをmailadressesのドメインに関連付けることができるかを見つける必要があることを知ってください。

だから私の考えは、webadressとURLからホストを抽出してそれらを比較することです

では、URLからホスト名を取得するための最も信頼できるアルゴリズムは何ですか?

たとえば、ホストは次のようになります。

foo.com
www.foo.com
http://foo.com
https://foo.com
https://www.foo.com

結果は常にfoo.comである必要があります

4

4 に答える 4

14

信頼できない正規表現を使用System.Uriして解析を行うのではなく。次のようなコードを使用します。

string uriStr = "www.foo.com";
if (!uriStr.Contains(Uri.SchemeDelimiter)) {
    uriStr = string.Concat(Uri.UriSchemeHttp, Uri.SchemeDelimiter, uriStr);
}
Uri uri = new Uri(uriStr);
string domain = uri.Host; // will return www.foo.com

使用できるトップレベル ドメインだけを取得するには、次のようにします。

string tld = uri.GetLeftPart( UriPartial.Authority ); // will return foo.com
于 2012-05-24T12:39:23.053 に答える
1

この情報を抽出するための C# には、既に URL パーサーがあります。

ここにいくつかの例があります http://www.stev.org/post/2011/06/27/C-HowTo-Parse-a-URL.aspx

于 2013-04-20T13:56:36.607 に答える
1

これは、指定した URL に一致する正規表現です。基本的に、http や https などはオプションであり、www も同様です。その後、すべてが可能なパスに一致します。

var expression = /(https?:\/\/)?(www\.)?([^\/]*)(\/.*)?$/;

これは次のことを意味します。

var result = 'https://www.foo.com.vu/blah'.replace(expression, '$3')

に評価します

result === 'foo.com.vu'
于 2012-05-24T10:15:18.620 に答える
0

この URL を参照してください。ホスト プロパティは、機関とは異なり、ポート番号を含みません。

http://msdn.microsoft.com/en-us/library/system.uri.host(v=vs.110).aspx

于 2014-01-14T22:08:12.517 に答える