【问题标题】:Intersection of two regular expressions in Golang using Ragel使用 Ragel 在 Golang 中的两个正则表达式的交集
【发布时间】:2019-06-19 23:07:37
【问题描述】:

函数的模板如下:

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

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

【问题讨论】:

  • 交叉点对于软件来说是一项艰巨的任务吗?
  • @sln 不确定您的意思。据我所知,有些语言本身就支持字符类交集,但是,显然 Golang 不是其中之一,这不是我所需要的。我发现理论上应该可以有效地计算两个简单正则表达式的交集(我所说的交集是指描述匹配两个正则表达式的字符串集的交集的正则表达式),但我找不到一个适合我需要的图书馆。

标签: regex go dfa ragel


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多