当我用一个不情愿的量词来否定未来时,我发现了一些奇怪的事情。当创建一个regex来断言最多3个大写字符时,我设计了这样一个:^(?!(.*?[A-Z]){4}).*$ 对rubular有效,但对regex101无效。为什么会这样? 最佳答案 ^,$匹配ruby中的行首/行尾。在其他语言中,^,$匹配字符串的开头/结尾,除非指定了多行模式(m)。(某些正则表达式引擎需要g标记多次匹配。)