我需要找到所有与字符串匹配的数据,看起来像这样:
16041917
16041917-A
16041917-Z
所以正如你所看到的,有时我可以得到-X
后缀,有时没有。
在我的代码中,我有数字的值,但我不知道是否有后缀。所以我尝试制作一个正则表达式来查找我的数据库中是否存在该数字。
{number : {$regex: "^16041917|^-[A-Z]$"}}
它有效,但我不知道我的正则表达式是否适用于所有内容。你能告诉我你有没有更好的吗?
匹配任何以16041917
开头的字符串,然后具有可选的-
序列,后跟单个大写 ASCII 字母使用
"^16041917(?:-[A-Z])?$"
请参阅正则表达式演示。
详
^
- 字符串的开头16041917
- 文本子字符串(?:-[A-Z])?
- 匹配 1 次或 0 次出现的可选非捕获组-
- 连字符[A-Z]
- 大写 ASCII 字母
$
- 字符串的结尾。