它没有按预期工作。在我的期望中,只有第二个版本应该成功。我期望与任何其他编程语言中的行为相同。
irb(main):071:0> "10.0.0.62" =~ /^10\.1*/
=> 0
irb(main):072:0> "10.0.0.62" =~ /^10\.*/
=> 0
我读了this .
最佳答案
In my expectations only the second version should succeed.
不,因为你在 1 旁边添加了 *
这意味着 1 可能出现零次或多次,即 *
重复前一个标记零次或多次次。所以第一个例子必须返回 true。
\.*
重复文字点零次或多次。所以这个 ^10\.*
正则表达式将匹配 10
, 10.
, 10......
关于IP 地址的 Ruby 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33250964/