私は正規表現の下にあります。.com/net/etc を強制するにはどうすればよいですか?
String regex = "^(((https?|ftp)://|(www|ftp)\\.)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?)|(http://)$";
ありがとう!
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 のセットは固定されていません。(南スーダンにはまだコードがありますか?)
この正規表現はそれを行う必要があります:
[.](com|net|other)
しかし、大きなURL正規表現の正しい位置に配置してください(これは最善の方法ではないかもしれません...)
URL プロトコルを検証した後、^[a-zA-Z0-9-.]+.(com|org|net|mil|edu|COM|ORG|NET)$ のようなものを使用できます。