如何使用正则表达式验证此IP地址

时间:2012-10-17 10:42:56

标签: ruby-on-rails regex

我想制作正则表达式来验证这些类型的ip地址。像

       192.168.12.1       # it may be any proper ip address 

       193.168.34.3-3     # this format should also be acceptable

因为我想从范围内的用户那里获取价值。

提前致谢

6 个答案:

答案 0 :(得分:3)

^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

是以0-255.0-255.0-255.0-255格式验证IP地址的正则表达式。最后一个数字的范围是什么,用-

分隔的数字

修改

^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?)(?:\-([01]?\d\d?|2[0-4]\d|25[0-5]))?|2[0-4]\d|25[0-5](?:\-([01]?\d\d?|2[0-4]\d|25[0-5]))?$ 

这应该适用于OP的情况。

答案 1 :(得分:2)

在Rails 3中使用ActiveRecord验证的Rails方法是:

@ip_regex = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/

validates :gateway, 
          :presence => true, 
          :uniqueness => true,
          :format => { :with => @ip_regex } 

答案 2 :(得分:1)

([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[\-0-9]*)会验证您的两个示例..如果您需要更多信息,您可以更具体一点吗?

答案 3 :(得分:1)

为简单起见,调用([0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[0-4][0-9] | 25[0-5])“Pattern” RegEx将是;

Pattern\.Pattern\.Pattern\.Pattern(-Pattern)?

答案 4 :(得分:1)

答案 5 :(得分:1)

查看此正则表达式。

/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}(?:\-([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))?$/