属性 列表中的正则表达式匹配项

Regex match items in property list

我的节点有一个 属性 字符串列表。

我想对列表中的字符串进行一些正则表达式匹配,例如匹配所有类似于 JVM_.*.

的字符串

我知道我可以像这样进行精确匹配:

match (f:File)
where "JVM_OPTS" in f.env
return f.id,f.path,f.env

但是我在文档中没有看到任何允许我做类似

的东西
match (f:File)
where "JVM_.*" ~ f.env
return f.id,f.path,f.env

如果您希望列表中的 any 项与您的表达式匹配,并且 return 只有一个匹配才匹配文件,您可以这样做:

MATCH (f:File)
WHERE ANY(x IN f.env WHERE x =~ 'JVM.*')
RETURN f.id, f.env


╒══════╤══════════════════════════════╕
│"f.id"│"f.env"                       │
╞══════╪══════════════════════════════╡
│123   │["JVM_OPTS","JAVA_HOME","CWD"]│
└──────┴──────────────────────────────┘

如果您对 return 文件以及 return 列表中与您的表达式匹配的项目感兴趣,您可以改为这样做:

MATCH (f:File)
RETURN f.id AS id, [x IN f.env WHERE x =~ 'JVM.*'] AS env

╒════╤════════════╕
│"id"│"env"       │
╞════╪════════════╡
│123 │["JVM_OPTS"]│
└────┴────────────┘