我有点卡在试图弄清楚如何在if-else类型的情况下为我工作。当我尝试在this site上实现if-else成语时,我最终得到了一个错误。这就是我所拥有的:
MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9]
这是我想要匹配的一个例子
这些
MVC123 MVC034 MVC001 MVC196
不是这些
MCV197 MCV000 MCV876
因此匹配显示MCV
的位置和数字组件的范围是1-196
答案 0 :(得分:1)
这是你的正则表达式细分:
Post.find({
include: {
relation: 'owner', // include the owner object
scope: { // further filter the owner object
fields: ['username', 'email'], // only show two fields
include: { // include orders for the owner
relation: 'orders',
scope: {
where: {orderId: 5} // only select order with id 5
}
}
}
}
}, function() { ... });
MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9]
- 匹配 MCV 字面意思MCV
- 匹配(1|0)
或1
0
- 匹配数字(\d)
- 确保最后一位数字不是(?<!1)
1
- 完全匹配第一组匹配的内容(如\1
匹配(1|0)
- 匹配1
,否则 - 1
)0
- 匹配[0-6]
到0
6
- 或者,将上述或中的所有内容与|[0-9]
至0
关于什么是真正的解决方案:
9
1-196部分:
MVC(00[1-9]|0[1-9]\d|1[0-8]\d|19[0-6])
- 如果我们从00[1-9]
开始,则第三个数字不应该是00
,又名 1到9 0
- 如果我们以0[1-9]\d
开头,而第二个数字不是0
,那么任何数字都可以接受第三个位置,也就是 10到99 强> 0
- 如果我们从1[0-8]\d
和第二个数字开始,这不是1
那么任何数字都可以接受第三个位置,也就是 100到189 强> 9
- 如果我们从19[0-6]
开始,那么只有19
到0
的数字可以接受第三个位置,即 190到196 答案 1 :(得分:1)