Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式的mongodb查询中出现意外结果_Regex_Mongodb - Fatal编程技术网

Regex 使用正则表达式的mongodb查询中出现意外结果

Regex 使用正则表达式的mongodb查询中出现意外结果,regex,mongodb,Regex,Mongodb,下面的第一个查询显示集合的全部内容,下面的三个查询按预期返回一个项目 为什么最后一个查询返回两项 > db.log.find() { "_id" : 123, "user" : "stefano" } { "_id" : 456, "user" : "franco" } > db.log.find({'user':/st/}) { "_id" : 123, "user" : "stefano" } > db.log.find({'user':/fr/}) { "_id" : 4

下面的第一个查询显示集合的全部内容,下面的三个查询按预期返回一个项目

为什么最后一个查询返回两项

> db.log.find()
{ "_id" : 123, "user" : "stefano" }
{ "_id" : 456, "user" : "franco" }
> db.log.find({'user':/st/})
{ "_id" : 123, "user" : "stefano" }
> db.log.find({'user':/fr/})
{ "_id" : 456, "user" : "franco" }
> db.log.find({'user':/st*/})
{ "_id" : 123, "user" : "stefano" }
> db.log.find({'user':/fr*/})
{ "_id" : 123, "user" : "stefano" }
{ "_id" : 456, "user" : "franco" }

因为在正则表达式中,
*
是一个量词(在零次和无限次之间匹配)。因此,
/fr*/
正则表达式与
f
字面匹配,与
r
零次或无限次匹配。()


如果您想创建一个与“start with”匹配的正则表达式,那么您可以使用以下命令:
/^fr/

,因为在正则表达式中,
*
是一个量词(零次和无限次之间的匹配)。因此,
/fr*/
正则表达式与
f
字面匹配,与
r
零次或无限次匹配。()

如果要创建一个与“start with”匹配的正则表达式,则可以使用以下命令:
/^fr/