Regex Neo4J、密码和通配符不起作用

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

我已经阅读了SO上的各种答案以及neo4j的帮助页面。然而,我无法让我的通配符匹配工作。例如,如果我输入cypher查询

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,谢谢