2016-10-31 21 views
0

私はURLを与えられ、URLが特定の最上位レベルのドメインで終わる場合にのみ、正規表現を使って一致する必要があります。たとえば、ドメイン名が.cnの場合にのみ一致します。私の考えは*.cnです。特定のトップレベルドメインを正規表現とどのように一致させることができますか?

.cn部分文字列がドメインの最後にない場合は一致しません。例えば: - 一致なし

  • cnn.cn - 試合
  • www.csc.edu.cn/studyinchina/ -

    • cnn.com試合

    私はそれをどのように行うことができますか?以下は、正常に動作するようです

  • +0

    は\ .CN $ 'これを試してみてくださいません' –

    +0

    URLは常にトップレベルドメインで終了しますか?あなたはこれをどの言語で使っていますか? – chris85

    +0

    これは、プログラミング言語の内部ではなく、正規表現を受け入れるファイアウォールで使用されます。 –

    答えて

    0

    (ちょうどかかわらず、あなたの3例をテストした)

    ^(http:\/\/)?(\w*\.)*(cn)(\/.*)?$ 
    

    ファイアウォールにそれを置く前に、他のURLを試してみてください!私はすでにあなたがユニットテストとして述べたものをregex101に追加しました。

    正規表現は、スラッシュ(「/」)(中のものを除いて「のhttp://」)のトップレベルドメインの前に発生する可能性があることをasumptionの下で構築され

    +1

    ダングこれは素晴らしいです。ご協力ありがとうございました。私はこれが今だと思います。追加されたhttps:^(http:\/\/| https:\/\ /)?(\ w * \。)*(cn)(\ /.*)?$ –

    +0

    @mlayt당신은더이상 'http: \/\/| https:\/\ /) 'を'(https?:\/\ /) 'と組み合わせて正規表現を短縮します。 – EvilDevil

    関連する問題