0

我正在尝试验证 IP 地址之类的内容,

它可能与端口连接或不连接。让我说:10.12.1.100 和 10.12.1.100:8080 都可以。

我创建了这样的东西:

^10\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5 [0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0 -9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0 -4][0-9]|5[0-5]))([-+]?(:|\d[1,4]))$

但是,它不适用于:10.12.1.100:8080 部件。如何实现这部分 ([-+]?(:|\d[1,4]))?

如果我删除 ([-+]?(:|\d[1,4]));它将有效 10.12.1.100 部分正确。

谢谢,

4

2 回答 2

1

使用这个正则表达式^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:\d{1,5})?$

于 2012-07-17T18:43:01.003 回答
0

您的特定模式似乎正在做一些非常特定的 IP 匹配,否则我建议使用 @burning_LEGION 建议的东西。我猜你的场景有一些特定的东西超出了正常的 IP 解析。

我只是扩展您当前的模式,因为我假设您需要组结构保持不变。否则我建议重写。

但是要修复您的具体示例,请尝试替换([-+]?(:|\d[1,4]))$([-+]?(:\d{1,5}))?$

于 2012-07-17T18:56:50.853 回答