使用Ragel在Golang中两个正则表达式的交点

时间:2019-06-19 23:07:37

标签: regex go dfa ragel

函数模板如下:

func GetIntersection(firstRegex string, secondRegex string) string {
    ...
}

我正在尝试使用Ragel获得两个正则表达式的交集。不过,不确定Ragel是否是正确的工具。我的最后一招是实施从正则表达式到DFA的转换,以及从DFA到正则表达式的转换,以及两个DFA本身的交集,但是我宁愿避免这种情况。非常感谢任何可靠的库来解决该问题。

1 个答案:

答案 0 :(得分:1)

Ragel有一个交集运算符(&)。您可以产生任何两个正则表达式的交集,只要它们以ragel语法表示即可。没有免费的自动ragel-to-regex翻译。我一直在私下为客户制作这种东西。无论如何,请参见手册以获取有关交叉点的更多信息。