gpt4 book ai didi

java - 如何对 mongo 中的索引进行多 anchor 正则表达式查询

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:32 25 4
gpt4 key购买 nike

我正在使用正则表达式 anchor 搜索索引,如下所示:

/^[Anchor1]/

一切都很好。它匹配以“Anchor1”开头的所有值,并使用 idex 来执行此操作。

但是,我想匹配多个起始字符串之一,如下所示:

/^[Anchor1][Anchor2][Anchor3][Anchor4]/

它太慢了,没有返回。这适用于有超过 3 个 anchor 的任何情况。我相当确定这很简单。要么我的正则表达式很糟糕(我希望情况可能是这样——我讨厌正则表达式),要么我的 mongo-fu 很弱。如果相关的话,我正在使用 Java 驱动程序。

我的问题是:

我在这里做错了什么?我希望能够利用 mongo 索引来匹配几个可能的起始字符串之一。

更新

呵呵。我的正则表达式很垃圾。应该是(感谢 Sammaye):

^(Anchor1|Anchor2|Anchor3)

尽管如此,它仍然很慢。我会提出一个更清晰的问题。

最佳答案

好吧,你仍然没有多大意义,因为 ^[Anchor] 与字符串开头的 Anchor 不匹配,而是匹配字符串开头的任何 An、chor,而发生这种情况是因为您使用的是字符类 [] .

要在字符串开头匹配名为 Anchor 的 anchor ,您需要使用:

^Anchor

为此,您不需要任何字符类。

如果有多个 anchor ,那么你可以这样做:

^(?:Anchor|Anchor1|Anchor2|...|AnchorN)

除非您告诉我们您要匹配的确切 anchor 是什么,否则无法进一步优化。

关于java - 如何对 mongo 中的索引进行多 anchor 正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19769368/

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