作者:随遇而安gqS1 | 来源:互联网 | 2023-10-16 19:04
String pattern = ".*" + "a? I'm" + ".*";
FindIterable document = collection.find(regex("mypost",pattern,"i")).sort(new Document("mypost",-1));
我想要一个包含术语“ a?I'm”的正则表达式。由于某种原因,当我只想“ a?我是”时,此模式会选择mypost为“?I'm”的收藏集。
这是怎么了?
您的正则表达式存在的问题是?
具有特殊含义
? -一次或一次
所以您的正则表达式基本上是在说-在“我是”之前,您可以拥有a
。
您的正则表达式实际上应如下所示:
String pattern = ".*" + "a\\? I'm" + ".*";
通过添加\\
,您应该指定要使用?
作为字符。