正则表达式替换neo4j中node属性的特殊字符

时间:2016-11-29 13:29:41

标签: regex neo4j cypher

我有一个属性,其值可能包含以下字符:~!@#$%^&*()和空格字符。

我想用空字符串替换所有字符。

请建议使用合适的正则表达式。

2 个答案:

答案 0 :(得分:1)

您已经拥有正则表达式,它是您列出的所有字符的类:

[~!@#$%^&*() ]

您只需使用您所用语言的正则表达式/字符串API替换所有出现的空字符串。

例如,在Java中:

// The pattern can be declared as a constant, computed only once.
Pattern p = Pattern.compile("[~!@#$%^&*() ]");

String newPropName = p.matcher(propName).replaceAll("");

答案 1 :(得分:0)

您可以在Cypher代码中使用迄今为止未记录的APOC函数apoc.text.replace。它接受正则表达式作为其第二个参数。 (因为它是一个函数,它不会在CALL子句中调用。)

例如:

RETURN apoc.text.replace('~!@1~!@', '[~!@#$%^&*() ]', '') AS res;

返回:

╒═══╕
│res│
╞═══╡
│1  │
└───┘