gpt4 book ai didi

regex - 仅匹配字母数字字符

转载 作者:可可西里 更新时间:2023-11-01 10:04:15 26 4
gpt4 key购买 nike

这道题其实是following的延伸

Ignore special characters before match conditions

我正在使用 mongodb 聚合从表中查找一些产品。以下是我需要改进的查询部分

{
$match : { "name" : { $regex : "kdf8210"} }
}

现在确实匹配名称中任何位置包含单词“kdf8210”的任何产品。但我还需要它与以下内容匹配。

kdf.8210, kdf-8210, kdf.82-10

基本上匹配应该忽略中间的任何特殊字符。

我刚刚了解到 $where 不能用作聚合管道的一部分,因此引用问题的答案没有太大帮助。

最佳答案

你可以这样使用:

^k[.-]?d[.-]?f[.-]?8[.-]?2[.-]?1[.-]?0$ 
  • 这允许将特殊字符 .- 插入到任何地方(开头或结尾除外)。
  • 如果你想允许更多特殊字符,我们可以调整 [.-]

如果您不想匹配整个字符串,请移除 ^$ anchor 。

  • ^ anchor 断言我们在字符串的开头
  • $ anchor 断言我们在字符串的末尾

参见 demo

关于regex - 仅匹配字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583553/

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