0

私は正規表現の下にあります。.com/net/etc を強制するにはどうすればよいですか?

String regex = "^(((https?|ftp)://|(www|ftp)\\.)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?)|(http://)$";

ありがとう!

4

3 に答える 3

2

I would recommend that you don't us a regex for this.

I'd recommend that you parse the URL using the URL class (or URI class if that is more appropriate), and then check that the hostname part ends with one of the required top-level domains.

また、一連のトップレベル ドメインをコードや正規表現に組み込むことは避けることをお勧めします。

  • かなりの数の新しい TLD がまもなく公開されます。何千ものそれらのように...

  • 新しい TLD を無視しても、2 文字の国 TLD のセットは固定されていません。(南スーダンにはまだコードがありますか?)

于 2012-08-29T14:14:50.693 に答える
1

この正規表現はそれを行う必要があります:

[.](com|net|other)

しかし、大きなURL正規表現の正しい位置に配置してください(これは最善の方法ではないかもしれません...)

于 2012-08-29T14:18:30.007 に答える
0

URL プロトコルを検証した後、^[a-zA-Z0-9-.]+.(com|org|net|mil|edu|COM|ORG|NET)$ のようなものを使用できます。

于 2012-08-29T14:15:07.530 に答える