具体来说,是否有一个库可以在给定 2 个(或更多)正则表达式时判断是否存在两个都匹配的输入?如果可以通过 Java 或 .NET 轻松访问它,则可加分,但命令行也可以。
提问者日志,补充:
提供给该算法的正则表达式相当简单。虽然我相信有几个具有前瞻性,但它们都是相当简单的文字或字符类组合,具有固定的最小和最大长度。
请您参考如下方法:
我找到了一个 python 库,可以让我做我需要做的事。
>>> import reCompiler
>>> fsa1 = reCompiler.compileRE('\d\d\d?\d?a')
>>> fsa2 = reCompiler.compileRE('123a')
>>> fsa3 = reCompiler.compileRE('a23a')
>>> print len(FSA.intersection(fsa1, fsa2).finalStates)
1
>>> print len(FSA.intersection(fsa1, fsa3).finalStates)
0
库名为 pyFSA .我将需要执行一些预解析以将\d{2,4} 之类的语句转换为\d\d\d?\d?,但除此之外它应该能很好地满足我的需要。感谢您的输入,如果人们找到以其他语言实现此功能的库,请务必包括它们。