给出一个有向的可能循环的networkx图。我想搜索被描述为正则表达式的路径。正则表达式不会描述循环。例如:
nodeA, [^nodeB]* [nodeC|nodeD]
在英语中,这应该对应于:我正在寻找一条以nodeA开头的路径,后跟0个、一个或多个不是nodeB的节点,最后该路径应该以nodeC或nodeD结尾。在
我想查找的示例路径是:
我在SO上找到了this相关帖子。然而,它是关于从两个节点之间的所有可能路径创建一个regex。在我的例子中,我提供了一个regex并希望获得相应的路径。在
我不完整(可能还不够)的方法是:
some_node
(即没有特殊的regex字符,如[]、^、*、+等)。在[^some_node]
,那么我检查当前节点是否等于该值。如果相等,我中断,如果不相等,则推进节点和正则表达式部分。在some_node
必须存在,那么我检查当前节点是否等于该节点。如果是的话,我推进节点和正则表达式。如果没有,我只推进节点。在在为其他情况编写更多代码之前,例如[some_node]*
或[some_node]+
我想检查是否已经存在该任务的某些代码或算法。在
对于这个任务,是否有任何读到使用模块/lib/示例代码之类的代码?
如果没有,你知道一个现有的算法“regex-to-path search in graph”?
如果没有,你能概述一下算法吗?
目前没有回答
相关问题 更多 >
编程相关推荐