Regex Neo4J、密码和通配符不起作用
我已经阅读了SO上的各种答案以及neo4j的帮助页面。然而,我无法让我的通配符匹配工作。例如,如果我输入cypher查询Regex Neo4J、密码和通配符不起作用,regex,lucene,neo4j,cypher,wildcard,Regex,Lucene,Neo4j,Cypher,Wildcard,我已经阅读了SO上的各种答案以及neo4j的帮助页面。然而,我无法让我的通配符匹配工作。例如,如果我输入cypher查询 MATCH (author:Author )-[:WROTE]->(article:Article) WHERE article.id =~ 'Art10526689' RETURN author, article.date 我得到了正确的答案。但是,如果我输入查询 MATCH (author:Author )-[:WROTE]->(article:Artic
MATCH (author:Author )-[:WROTE]->(article:Article)
WHERE article.id =~ 'Art10526689' RETURN author, article.date
我得到了正确的答案。但是,如果我输入查询
MATCH (author:Author )-[:WROTE]->(article:Article)
WHERE article.id =~ "Art1052668*" RETURN author, article.date
我没有得到任何回报。我之所以使用“”,是因为lucene可能是敏感的,“=~”是因为有人建议它比简单地执行(article:article{id:'Art1052668*})
要好,尽管这也不起作用
如往常一样,我们将非常感谢您的帮助
尊敬的Richard,Richard,你已经接近一个答案了。它认为发生的事情是你对Neo4j支持的正则表达式语法的错误理解。在你的查询中,
8*
实际上意味着匹配8
和0..无穷多的8。如果你想替换文章中的9
如果希望0..8
后面有无限个字符,则可以使用Art1052668.
。也可以使用(?i)
添加大小写不敏感,请参见下面的示例
MATCH (author:Author )-[:WROTE]->(article:Article)
WHERE article.id =~ "(?i)Art1052668.*"
RETURN author, article.date
Richard,你已经接近答案了。它认为发生的事情是你对Neo4j支持的正则表达式语法的错误理解。在你的查询中,8*
实际上意味着匹配8
和0..无穷多的8s。如果你想用一个字符替换文章id中的9
然后您将使用
字符。如果您希望0
MATCH (author:Author )-[:WROTE]->(article:Article)
WHERE article.id =~ "(?i)Art1052668.*"
RETURN author, article.date
D'UH!当然是regexp,我在想通配符!Brilliant,谢谢!当然是regexp,我在想通配符!Brilliant,谢谢