1

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

       192.168.12.1       # it may be any proper ip address 

       193.168.34.3-3     # this format should also be acceptable

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

提前致谢

4

6 回答 6

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 的场景。

于 2012-10-17T10:49:17.037 回答
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 } 
于 2012-10-17T11:02:17.283 回答
1

你可以从这里开始

http://answers.oreilly.com/topic/318-how-to-match-ipv4-addresses-with-regular-expressions/

并根据需要进行修改。

于 2012-10-17T10:56:36.077 回答
1

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

Pattern\.Pattern\.Pattern\.Pattern(-Pattern)?
于 2012-10-17T10:55:38.553 回答
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]))?$/
于 2012-10-17T11:52:56.233 回答
1

([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[\-0-9]*)将验证你的两个例子..如果你需要它来匹配更多,你能更具体吗?

于 2012-10-17T10:47:58.053 回答