有谁知道如何找到某个正则表达式模式的所有可能的匹配数?我的意思是这样的:Ruby模式匹配 - 查找所有可能的匹配数
Calculator_1 _([0-1])回报2个可能的结果,因为它可以匹配两个不同的输入:
-Calculator_1_0
-Calculator_1_1
Calculator_1 _([0-2 ])返回3个可能的结果,因为它可以匹配三个不同的输入:
-Calculator_1_0
-Calculator_1_1
-Calculator_1_2
Calculator_1 _返回无限,因为它可以匹配无限输入(*):
-Calculator_1_0
-Calculator_1_1
-Calculator_1_2
-Calculator_1_3
-Calculator_1_a
...
编辑:顺便说一句,这只是一个例子。
在一般情况下,结果将是无限的,所以我不认为有一些可以应用的开箱即用功能。你想用这个做什么?你能提供一些背景吗? – davidrac 2012-08-07 19:06:23
这是一个非常复杂的程序,但基本上我需要计算机能够从一系列用户生成的正则表达式模式中选择最佳模式。为了做到这一点,我需要知道哪些模式具有最少量的可能匹配以及哪些模式最精确。在上面的示例中,第一个和第二个模式都将匹配“Calculator_1_0”,但第一个模式更精确,因为它具有最少的匹配。把它看作一个正则表达式工具。 – Walker 2012-08-07 19:16:00
我认为即使是非常琐碎的例子的可能组合是如此复杂,你不能用一个简单的算法来预测...... – phoet 2012-08-07 19:41:29