ruby - 比较两个正则表达式的严格性?

标签 ruby regex perl

一般来说,有没有一种快速的方法来比较两个正则表达式并确定两者中哪一个更严格?即,有两个正则表达式 A 和 B,A 比 B 更严格,当且仅当匹配 A 的每个字符串也匹配 B。

最佳答案

虽然理论上有一些算法可以让您做这些事情,但由于以下几个原因将它们应用到 Ruby 中会很困难:

  1. Ruby 不提供这些内置功能,因为 Ruby 正则表达式的目标是匹配文本,而不是执行有限状态自动机的理论操作。
  2. Ruby 不会公开其正则表达式的内部结构供您运行自己的算法。 (虽然您可以使用 inspect 来获取正则表达式的原始形式,但您必须自己解析它才能对正则表达式执行任何分析。)
  3. Ruby 的正则表达式不是“真正的”正则表达式。由于反向引用与捕获组结合使用,它们可以识别正则语言的超集(尽管它只是上下文无关语言的子集),因此该理论无法与 Ruby 正则表达式的功能完美匹配。

关于ruby - 比较两个正则表达式的严格性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567359/

相关文章:

sql - 在 Redshift SQL 中从数组中提取值

c# - 正则表达式,从分隔字符串中删除重复路径

perl - 如何多线程查看 Perl 中是否存在网页?

ruby - RVM 无法通过 SSH 工作

ruby - 在日期范围内查询特定数据

ruby - 迭代一个数组,一次 n 项

java - 在 Java 或 Perl 中创建随机 XML 条目

ruby - 如何在类中调用父类(super class)方法

regex - 带有正则表达式的字符串之间的 Grep 值

javascript 正则表达式 - 删除评论