gpt4 book ai didi

regex - MongoDB 使用正则表达式查询空格

转载 作者:行者123 更新时间:2023-12-02 01:07:07 25 4
gpt4 key购买 nike

我在 MondoDB 中存储了大量文本数据,用户可以通过关键字或短语查询这些数据,但存在一个问题,即某些数据具有 unicode 字符 U+00A0(不间断空格)而不是常规空格。

修复数据不是一个选项(那些 nbsps 是有意的),我仍然希望用户能够搜索并找到该数据。因此,我更新了我们的 Mongo 查询构建代码,以在用户输入空格的地方搜索任何空格 [\s],从而产生如下查询:

{ "tt" : { "$elemMatch" : { "x" : { "$regex" : "high[\s]performance" , "$options" : "i"} }}}

(查询还有更多内容,这只是相关的部分)。

不幸的是,这并没有返回预期的结果。所以我尝试了很多其他方法来实现这一点,并最终发现当我搜索“not non-whitespace”[^\S] 时我得到了正确的结果,如下所示:

{ "tt" : { "$elemMatch" : { "x" : { "$regex" : "high[^\S]performance" , "$options" : "i"} }}}

这引出了我的问题——为什么“任何空格”(“\s”) 无法找到此文本,而“非非空格”(“^\S”) 却能成功找到它? Mongo 是否对什么算作空白和非空白有一套不同的规则?

数据全程UTF-8,MongoDB版本为2.2.2

最佳答案

我想这里的问题是 \,而不是空格。你能写下\\来证明我的猜想吗?

关于regex - MongoDB 使用正则表达式查询空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21243057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com