Neo4j Cypher中Split()函数异常及多空格保留方法咨询
Cypher Split() 保留多空格问题解答
这不是Bug,是split()函数的默认特性:Cypher的split()会自动把连续的空白字符(不管是全角还是半角空格)合并成单个半角空格,所以你拆分后看到多空格变成了单空格。
要保留原字符串里的多空格,有两种可行方案:
使用APOC扩展的
apoc.text.split()函数(需要先在Neo4j中安装并启用APOC库),这个函数不会自动合并空白字符,直接拆分即可:RETURN apoc.text.split("a b c d", "c")执行结果:
["a b ", " d"],完全保留原全角空格。用正则表达式拆分(无需扩展):通过零宽断言匹配分隔符"c"的位置,避免触动其他字符:
RETURN [part IN split("a b c d", "(?<=c)|(?=c)") WHERE part <> "c"]这里先把字符串按"c"的前后位置拆分,得到包含"c"的数组,再过滤掉"c"元素,最终结果同样保留原多空格。
内容的提问来源于stack exchange,提问作者norihide.shimatani
相关产品推荐
相关产品推荐

