Java Mongodb驱动程序正则表达式查找 String pattern=“.*”+“a?我是“+”*”; FindIterable document=collection.find(regex(“mypost”,pattern,“i”)).sort(新文档(“mypost”,-1));

Java Mongodb驱动程序正则表达式查找 String pattern=“.*”+“a?我是“+”*”; FindIterable document=collection.find(regex(“mypost”,pattern,“i”)).sort(新文档(“mypost”,-1));,java,mongodb,Java,Mongodb,我想要一个包含“a?我是”的正则表达式。出于某种原因,当我只想要“a?I'm”时,此模式将mypost作为“I'm”来收集集合 它有什么问题?正则表达式的问题是?有特殊的含义 ?-一次或不 所以你的正则表达式基本上是说-在“我”之前你可以有a 您的正则表达式实际上应该如下所示: String pattern=“.*”+“a\\?我是“+”*” 通过添加\\,您应该指定要将?用作字符。好的,这可以解决问题,但现在我的问题是,我无法手动更改每个带有2`\`的符号,因为如果这有意义的话,文本的这部分并

我想要一个包含“a?我是”的正则表达式。出于某种原因,当我只想要“a?I'm”时,此模式将mypost作为“I'm”来收集集合


它有什么问题?

正则表达式的问题是
有特殊的含义

?-一次或不

所以你的正则表达式基本上是说-在“我”之前你可以有
a

您的正则表达式实际上应该如下所示:

String pattern=“.*”+“a\\?我是“+”*”


通过添加
\\
,您应该指定要将
用作字符。

好的,这可以解决问题,但现在我的问题是,我无法手动更改每个带有2`\`的符号,因为如果这有意义的话,文本的这部分并不总是固定的。有没有像exactText(string)这样的命令\\不会显示为字符,为什么不进行实验?@FailingCoder我的意思是,如果我发送一个带有“abc?I'm”之类字符串的请求,那么我就不知道每个符号的位置了。
    String pattern = ".*" + "a? I'm" + ".*";
    FindIterable<Document> document = collection.find(regex("mypost", pattern, "i")).sort(new Document("mypost", -1));