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