我使用Cineasts Movies & Actors (12.3MB) dataset,我希望从凯文·培根和他所扮演的所有美国演员那里获得路径,他们也曾参与戏剧电影。所以我做了这个cypher查询,它不返回任何行:
START KB=node(759)
MATCH (KB)-->(m1)<--(p)-->(m2)
WHERE HAS(p.birthplace) AND p.birthplace =~ ".*(USA|United States)" AND m2.genre = "Drama"
RETURN m1, p, m2
但是如果我摆脱了正则表达式(p.birthplace = "USA"
),它会返回一个结果。怎么了?初始查询应至少返回一行。我正在使用Neo4j 1.9.2。
答案 0 :(得分:2)
实际上这比neo4j或cypher更加REGEX。 你缺少了parantheses。 (美国|美国)指美国或美国,bc the正在对两个字符A和U进行OR运算。尝试((美国)|(美国))
编辑: PS,试试这个网站获得一些很棒的正则表达式支持和测试http://gskinner.com/RegExr/