具体来说,是否有一个库可以在给定 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?,但除此之外它应该能很好地满足我的需要。感谢您的输入,如果人们找到以其他语言实现此功能的库,请务必包括它们。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!