如何将regex中的单词与Neo4j中的非英语字符匹配?
我有一个词,例如:Fabérgé 我正在尝试编写正则表达式来匹配单词和非英语字符,在正则表达式中键入非英语字符 我的意思是:如何将regex中的单词与Neo4j中的非英语字符匹配?,regex,neo4j,Regex,Neo4j,我有一个词,例如:Fabérgé 我正在尝试编写正则表达式来匹配单词和非英语字符,在正则表达式中键入非英语字符 我的意思是: [(A-Za-z)|(^\x00-\x7F)]*Faber.* 应该和Fabérgé匹配,但不是。不知道怎么做。建议在Neo4j中对Unicode正则表达式使用(?u)。此正则表达式应适用于您的情况: (?u)\w+ 请注意,我使用了\w,没有范围。如果您确实想使用范围,那么必须使用Unicode代码点。建议在Neo4j中对Unicode正则表达式使用(?u)。此正则
[(A-Za-z)|(^\x00-\x7F)]*Faber.*
应该和Fabérgé匹配,但不是。不知道怎么做。建议在Neo4j中对Unicode正则表达式使用(?u)
。此正则表达式应适用于您的情况:
(?u)\w+
请注意,我使用了\w
,没有范围。如果您确实想使用范围,那么必须使用Unicode代码点。建议在Neo4j中对Unicode正则表达式使用(?u)
。此正则表达式应适用于您的情况:
(?u)\w+
请注意,我使用了
\w
,没有范围。如果确实要使用范围,则必须使用Unicode代码点。您使用的是什么语言?大多数语言都支持unicode正则表达式。另外,有些语言有两种不同类型的字符串:字节字符串和unicode字符串。您使用的是哪种字符串?我正在尝试使用Neo4j中的like进行查询搜索。我不想在代码中这样做,因为我需要搜索图形结果,我知道我可以规范化名称并将其存储为其他列,但这不是正确的方法。您可以提供更多的输入和所需的输出吗?é仍然是一个UTF-8字符,因此,您应该能够在不使用charcode的情况下匹配它。您使用的是什么语言?大多数语言都支持unicode正则表达式。另外,有些语言有两种不同类型的字符串:字节字符串和unicode字符串。您使用的是哪种字符串?我正在尝试使用Neo4j中的like进行查询搜索。我不想在代码中这样做,因为我需要搜索图形结果,我知道我可以规范化名称并将其存储为其他列,但这不是正确的方法。您能提供更多的输入和所需的输出吗?é仍然是UTF-8字符,所以您应该能够匹配它,而不必像您那样使用charcode。您的意思是:'(?iu)\\w+.*Faberge.*'?@dawidr:Mh…不。也许我误解了你的问题,你想精确匹配什么?一个在“Faberge”(不带重音)之前的单词?在图中,我有一个字段名为“name”。这个名称有值:“Restaurant Fabérge”。我想写一个选择查询,让我得到结果“Restaurant Fabérge”不键入此非英语字符。例如:MATCH(restaurant:Restaurants)WHERE restaurant.name=~'.*Faberge.*'应返回:“restaurant Fabérge”@Dawidr:如果你的问题是你只是想避免键入那些字符,那么就跳过它们:Fab.rg.
——你不能键入e
,并期望它被解释为e
,所以在neo4j中没有类似于sql COLLATE等的东西?而对于正则表达式,我不能这样做?添加一个点不是一个解决方案,因为我t将返回Fab和rg的其他结果,例如:Fabirgu将返回Fab.rg。您的意思是:“(?iu)\\w+.*Faberge.*”?@dawidr:Mh…不。可能我误解了您的问题,您希望精确匹配什么?在“Faberge”(无重音)之前的一个单词?在图中,我将字段命名为例如“name”。此名称的值为:“Restaurant Fabérge”。我想编写一个select查询,允许我在不键入此非英语字符的情况下获取结果“Restaurant Fabérge”。例如:MATCH(Restaurant:Restaurants)WHERE Restaurant.name=~'.*Faberge.*'应返回:“Restaurant Fabérge”@Dawidr:如果你的问题是你只是想避免键入那些字符,那么就跳过它们:Fab.rg.
——你不能键入e
,并期望它被解释为e
,所以在neo4j中没有类似于sql COLLATE等的东西?而对于正则表达式,我不能这样做?添加一个点不是一个解决方案,因为我t将返回带有Fab和rg的其他结果,例如:Fabirgu将为Fab.rg返回。