java 正则 端口号_java-用于验证InetSocketAddresses(ipv4 / v6端口地址)的正则表达式

尝试在InetSocketAddress的.toString()上使用正则表达式来做到这一点可能不是一个好主意. (请参阅上述问题的评论)

一种可能的选择是使用URL或URI以字符串格式打印地址,即much more standardized.

编辑:

另一方面,如果您想用正则表达式折磨自己… 😉

IPv4:

Pattern: .*/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+):([0-9]+)

Java constant: ".*/([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+):([0-9]+)"

仅处理点分四进制格式的地址.不检测无效地址.

IPv6:

Pattern: .*/([0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+(%[a-zA-Z0-9]+)?):([0-9]+)

Java constant: ".*/([0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+(%[a-zA-Z0-9]+)?):([0-9]+)"

处理所有8个16位段的IPv6地址. (再次注意,这样做的唯一原因是Java中的Inet6Address实现似乎以非标准方式打印地址-可能因此可以附加端口号并且没有歧义)不检测无效的IPv6地址.仅处理小写十六进制字符.使用大写或小写字母和/或数字处​​理区域/范围ID(如果存在).

我用handy applet I found测试了它们.

从记录来看,我仍然认为这是一个坏主意. ;-)我不确定是否所有的Java平台都会以这种方式打印地址.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值