Neo4j 中不区分大小写的正则表达式搜索中某些特殊字符的大小写似乎不匹配
Case of certain special characters in Neo4j case insensitive regex searches don't seem to be matching
对于不区分大小写的正则表达式搜索,在 Neo4j 中,ü 和 Ü 或 ł 和 Ł 等字符似乎被视为完全独立的字符。
以下 Cypher 应该 return 一个节点,但它不是:
CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?i)łomza überbrew' RETURN t
这是 Neo4j 的预期吗?使用 Neo4j Enterprise-2.1.2
谢谢
您需要使用不区分大小写的 unicode 正则表达式,而不是仅适用于 ascii 字符的不区分大小写。而不是 (?i)
使用 (?ui)
:
CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?ui)łomza überbrew' RETURN t
对于不区分大小写的正则表达式搜索,在 Neo4j 中,ü 和 Ü 或 ł 和 Ł 等字符似乎被视为完全独立的字符。
以下 Cypher 应该 return 一个节点,但它不是:
CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?i)łomza überbrew' RETURN t
这是 Neo4j 的预期吗?使用 Neo4j Enterprise-2.1.2
谢谢
您需要使用不区分大小写的 unicode 正则表达式,而不是仅适用于 ascii 字符的不区分大小写。而不是 (?i)
使用 (?ui)
:
CREATE (t:Thing { name: "Łomza Überbrew" })
MATCH (t:Thing) WHERE t.name=~'(?ui)łomza überbrew' RETURN t