具体来说,是否有一个库,当给定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 ?,但除此之外,它应该非常适合我的需求。感谢您的输入,如果人们找到以其他语言实现此功能的库,则一定要包括它们。

关于regex - 是否有提供对正则表达式进行静态分析的库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1522375/

10-14 15:01