正则表达式用于MongoDB查询

时间:2018-09-03 10:15:02

标签: regex mongodb

我需要找到所有与字符串匹配的数据,如下所示:

16041917
16041917-A
16041917-Z

因此,正如您所看到的,有时我可以得到-X后缀,有时则不能。

在我的代码中,我具有数字的值,但是我不知道是否有后缀。因此,我尝试制作一个正则表达式来查找数据库中是否存在该数字。

{number : {$regex: "^16041917|^-[A-Z]$"}}

它可以工作,但是我不知道我的正则表达式是否可以用于所有工作。你能告诉我你是否更好吗?

1 个答案:

答案 0 :(得分:1)

要匹配任何以16041917开头,然后带有-的可选序列,后跟一个大写ASCII字母的字符串,请使用

"^16041917(?:-[A-Z])?$"

请参见regex demo

详细信息

  • ^-字符串的开头
  • 16041917-文字子字符串
  • (?:-[A-Z])?-一个可选的非捕获组,匹配出现1或0次
    • --连字符
    • [A-Z]-大写ASCII字母
  • $-字符串的结尾。