给定可能的循环网络x图。我想搜索被描述为正则表达式的路径。正则表达式不会描述周期。一个例子是:
nodeA, [^nodeB]* [nodeC|nodeD]
在英语中,这应该对应于:我正在寻找一个以nodeA开头的路径,后跟零,一个或多个不是nodeB的节点,最后路径应该以nodeC或nodeD结束。
我想找到的示例路径是:
我在SO上发现了this相关帖子。然而,它是关于从两个节点之间的所有可能路径创建正则表达式。就我而言,我提供了一个正则表达式,并希望得到相应的路径。
我的不完整(可能不够)的方法是:
some_node
(即没有特殊的正则表达式字符,如[],^,*,+等)。[^some_node]
,那么我检查当前节点是否等于那个。如果它相等,我就会中断,如果没有,则推进节点和正则表达式部分。some_node
必须在那里,那么我检查当前节点是否等于那个。如果是,我推进节点和正则表达式。如果没有,我只推进节点。在为其他案例编写更多代码之前,例如[some_node]*
或[some_node]+
我想检查此任务是否存在某些代码或算法。
此任务是否有任何读取使用模块/ lib /示例代码等?
如果没有,您是否知道现有的算法“正则表达式中的路径搜索正则表达式”?
如果没有,你能概括一个算法吗?