用于IP地址的Ruby正则表达式

时间:2015-10-21 04:29:04

标签: ruby regex

它没有按预期工作。在我的期望中,只有第二个版本才能成功。我期望与任何其他编程语言中的行为相同。

irb(main):071:0> "10.0.0.62" =~ /^10\.1*/
=> 0
irb(main):072:0> "10.0.0.62" =~ /^10\.*/
=> 0

我看了this

1 个答案:

答案 0 :(得分:3)

  

在我的期望中,只有第二个版本才能成功。

不,因为您在1旁边添加了*,这意味着可能有1次出现0次或更多次,即*重复前一次令牌零次或多次。所以第一个例子必须返回true。

\.*重复字面点零次或多次。因此,此^10\.*正则表达式将匹配1010.10......