如何在Cypher查询中使用不区分大小写正则表达式?Memgraph 2.6.4求助
解决Memgraph中使用正则不区分大小写的报错问题
Memgraph基于RE2正则引擎,不支持(?i)这种内嵌在正则表达式里的大小写忽略标记,这就是触发"Invalid special open parenthesis"错误的原因。
要实现不区分大小写的正则匹配,需要通过Memgraph正则函数的第三个参数指定标志:
- 所有正则相关函数(比如
regexp_match、regexp_replace、regexp_like)都支持传入第三个参数,传入'i'即可启用不区分大小写模式。
举几个实际用法例子:
- 匹配节点属性时忽略大小写
MATCH (user:User) WHERE regexp_match(user.username, 'kate', 'i') RETURN user;
上面的语句会匹配Kate、KATE、kate等所有大小写组合的用户名。
- 替换字符串时忽略大小写
MATCH (post:Post) SET post.content = regexp_replace(post.content, 'memgraph', 'Memgraph Platform', 'i') RETURN post;
这个语句会把内容里所有大小写形式的memgraph替换成指定文本。
另外,RE2还支持其他标志,比如'm'(多行模式)、's'(单行模式),多个标志可以组合传入,比如'im'。
内容的提问来源于stack exchange,提问作者KateLatte
相关产品推荐
相关产品推荐

