本文介绍了Neo4j不区分大小写的正则表达式搜索中某些特殊字符的大小写似乎不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Neo4j中,对于不区分大小写的正则表达式搜索,似乎像ü和Ü或ł和Ł这样的字符被视为完全独立的字符.

It appears that characters like ü and Ü or ł and Ł are treated like completely separate characters in Neo4j for case insensitive regex searches.

以下Cypher应该返回一个节点,但不会返回:

The following Cypher should return a node but it doesn't:

CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?i)łomza überbrew' RETURN t

Neo4j是否可以预期?使用Neo4j Enterprise-2.1.2

Is this expected with Neo4j? Using Neo4j Enterprise-2.1.2

谢谢

推荐答案

您需要使用不区分大小写的unicode正则表达式,而不仅仅是仅区分大小写的ASCII正则表达式.代替(?i)使用(?ui):

You need to use case-insensitive unicode regex instead of just case-insensitive which just applies to ascii chars. Instead of (?i) use (?ui):

CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?ui)łomza überbrew' RETURN t

这篇关于Neo4j不区分大小写的正则表达式搜索中某些特殊字符的大小写似乎不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 11:47