2010-12-15 11 views
1

与えられたURL SLDをキャプチャするには正規表現が必要です。第2レベルのドメイン(SLD)をキャプチャする正規表現が必要

例:

jack.bop.com -> bop 
bop.com -> bop 
bop.de -> bop 
bop.co.uk -> bop 
bop.com.br -> bop 

すべてBOPS :)。したがって、この正規表現は、ccTLD、gTLD および ccSLDを無視する必要があります。後者は難しい部分です。なぜなら正規表現を可能な限り複雑にしたくないからです。

まず、ccTLDを削除してからgTLDを削除し、ccSLDがあるかどうかを確認して削除します。

すべてのヘルプははるかに高く評価される:)

-

それが助け場合は、のccTLDはで一致している:

\.([a-z]{2})$ 

とのgTLDがで一致している:

\.([a-z]{3-6})$ 

幸いにもそれは2つの相互に排他的なパターンです。

答えて

3

技術的には、 '.co.uk'は 'bop.co.uk'の第2レベルのドメインです。あなたが求めているように見えるのは、公的登録に公開されたドメインの最高レベルの部分です。本当にいい名前があるのか​​分かりません。それは確かにあまりよく定義されていません。

あなたが望むものを見つけるには、「公開に公開しないでください」という接尾辞をすべて列挙しなければなりません。 'www.british-library.uk'のようなケースを処理するには、これらの順序を最長から最短にする必要があります。その後、正規表現は非常に単純です:

<suffixes>は接尾辞のご |区切られたリストになり
(.+\.)?([^.]+)\.(?:<suffixes>)$ 

。その作品は次のようになります。繰り返しますが、これらの最長の最初のを注文したい

gov\.uk|ac\.uk|co\.uk|com|org|net|us|uk 

(より正確には現実の制約は、あなたが他の要素の接尾辞である要素は、後に表示させたいです - 注文最長の最初ですその制約を満たす簡単な方法)。

ウェブブラウザがどのようにCookieドメインを処理するかを調べることで、気になるドメインのリストを見つけることができます。私は、ブラウザがco.ukのすべてに存在するCookieを持つことができないようにするために、いくつかの特殊なケースを思い出していることを思い出しています。

関連する問題