今天我遇到了以下正则表达式,想知道 Ruby 会用它做什么:
> "#a" =~ /^[\W].*+$/
=> 0
> "1a" =~ /^[\W].*+$/
=> nil
在这种情况下,Ruby 似乎忽略了这个+
角色。如果这是不正确的,我不确定它在做什么。我猜它没有被解释为量词,因为它*
没有被转义并且被用作量词。在 Perl/Ruby 正则表达式中,有时当一个字符(例如-
)在不能被解释为特殊字符的上下文中使用时,它被视为文字。但如果在这种情况下发生这种情况,我希望第一个匹配失败,因为+
左值字符串中没有。
这是对+
角色的巧妙正确使用吗?上述行为是错误吗?我错过了一些明显的东西吗?