Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将regex中的单词与Neo4j中的非英语字符匹配?_Regex_Neo4j - Fatal编程技术网

如何将regex中的单词与Neo4j中的非英语字符匹配?

如何将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)。此正则

我有一个词,例如:Fabérgé

我正在尝试编写正则表达式来匹配单词和非英语字符,在正则表达式中键入非英语字符

我的意思是:

[(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返回。