我正在尝试验证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右边有效。
谢谢,
答案 0 :(得分: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})?$
答案 1 :(得分:0)
您的特定模式似乎正在进行一些非常具体的IP匹配,否则我建议使用类似@burning_LEGION的建议。我猜你的场景中有一些特定的东西超出正常的IP解析范围。
我只扩展您当前的模式,因为我假设您要求组结构保持不变。否则我建议改写。
但要修复您的具体示例,请尝试将([-+]?(:|\d[1,4]))$
替换为([-+]?(:\d{1,5}))?$