Python文档字符串+;Neo4J cypher查询似乎导致regexp错误
我有这样一个密码片段:Python文档字符串+;Neo4J cypher查询似乎导致regexp错误,python,neo4j,cypher,Python,Neo4j,Cypher,我有这样一个密码片段: where my_node.my_column =~ ("(?i).*\\." + {my_var}) where my_node.my_column =~ ("(?i).*\\\\." + {my_var}) 其思想是匹配类似字符串的路径。例如,my_列的值可以是db.schema.my_TABLE,我想在Python-cypher语句中传递“my_TABLE”。这应该匹配 然而,我得到了一个密码错误的声明;具体来说,它不喜欢regexp中的最后一个“.”。就好
where my_node.my_column =~ ("(?i).*\\." + {my_var})
where my_node.my_column =~ ("(?i).*\\\\." + {my_var})
其思想是匹配类似字符串的路径。例如,my_列
的值可以是db.schema.my_TABLE
,我想在Python-cypher语句中传递“my_TABLE”。这应该匹配
然而,我得到了一个密码错误的声明;具体来说,它不喜欢regexp中的最后一个“.”。就好像我没有正确地逃避它。文件说Java regexp是在幕后使用的
现在我正在使用:
where my_node.my_column =~ ('(?i).*' + '.' + {table_name})
这似乎有效,但我不能诚实地说句点是否匹配任何字符或文字句点字符
如果重要的话,我的密码查询是在Python文档字符串中
我怎样才能逃过这段时间?有没有更好的方法来表达我想要的内容?在Python中,反斜杠(\)字符用于开始转义序列。特别是,“\\”是反斜杠字符本身的转义序列
因此,为了生成包含两个相邻反斜杠字符的字符串文字,实际上需要在代码中使用4个相邻反斜杠字符。例如,您的Python代码段应如下所示:
where my_node.my_column =~ ("(?i).*\\." + {my_var})
where my_node.my_column =~ ("(?i).*\\\\." + {my_var})
您使用的是什么版本的Neo4j?我无法复制密码。这对我很有用:
MATCH(a:Schema),其中a.my\u column=~(“(?i.*\\”+“my\u TABlE”)返回一个
你能分享更多显示你如何执行查询的代码吗?不转义
它将匹配任何characters@WilliamLyon从Neo4J网络控制台上看,它也适用于我。因此,我认为它与我的Python文档字符串有某种联系。代码现在已经被撕碎了,我必须制作一个例子。