ruby - 在负面前瞻中使用不情愿的量词时引擎之间的不一致

标签 ruby regex pcre

在消极展望中使用不情愿的量词时,我发现有些奇怪。

当创建一个正则表达式来断言最多 3 个大写字符时,我设计了这个:

^(?!(.*?[A-Z]){4}).*$

适用于 rubular , 但不在 regex101 上.

这是为什么?

最佳答案

^$ 匹配 Ruby 中的行首/行尾。

而在其他语言中,^$ 匹配字符串的开头/结尾,除非指定了多行模式 (m)。 (一些正则表达式引擎需要 g 标志来匹配多次。)

关于ruby - 在负面前瞻中使用不情愿的量词时引擎之间的不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332355/

相关文章:

ruby - 如何使用 Ruby 和 Nokogiri 解析 USPTO XML 文件?

css - css 中的正则表达式失败

Java 正则表达式 xml 解析

c++ - Pcrepp - 用于匹配主机名的 Perl 正则表达式语法

ruby-on-rails - 将记录添加到 rails 中的表

ruby-on-rails - Ruby on Rails, bundle 部署 dreamhost

ruby-on-rails - 使用 JS 响应 iframe 文件上传

用于排除 [ ](方括号)内字母的正则表达式

python - C++ 将 Python 正则表达式转置为 PCRE

php - PCRE:环视的 DEFINE 语句