有効な DNS ホスト名、IPv4 または IPv6 アドレスのみを受け入れるための優れた (できればテスト済みの) 正規表現を持っている人はいますか?
22525 次
5 に答える
22
正規表現の使用を余儀なくされる可能性があることを理解しています。ただし、可能であれば、このタスクに正規表現を使用することを避け、代わりに Java ライブラリ クラスを使用して検証を行うことをお勧めします。
検証と DNS ルックアップを一緒に行いたい場合InetAddress.getByName(String)
は、良い選択です。これは、DNS、IPv4、および IPv6 を一度にInetAddress
処理し、DNS 名 (提供されている場合) と IPv4 または IPv6 アドレスの両方を含むきちんとラップされたインスタンスを返します。
構文の検証だけを行いたい場合、Apache commons には、その仕事を行うクラスがいくつかあります:DomainValidator
とInetAddressValidator
.
于 2010-06-25T00:08:32.533 に答える
5
Guavaには新しいクラスHostSpecifierがあります。最新のmozillaパブリックサフィックスに基づいて、ホスト名(ホスト名の場合)が有効な「パブリックサフィックス」(「.com」、「。co.uk」など)で終わることも検証します。リスト。これは、手作りの正規表現では試したくないことです。
于 2010-06-25T05:23:14.300 に答える