find({}).forPurpose({"key":"value"})
这个字符串用{.*}
匹配,不能匹配到第一组{}吗?
1
zxCoder OP 改成{.*?}就好了 这是为什么呢?
?是 0 次或 1 次 *是 0 次或多次 |
2
lululau 2020-12-25 22:28:49 +08:00
量词后面的 ? 不表示 0 或者 1 次匹配,搜下“正则非贪婪匹配”
|
3
xupefei 2020-12-25 22:30:16 +08:00 via iPhone
加了问号是非贪婪,能匹配多短就匹配多短。
|
4
msg7086 2020-12-25 22:31:13 +08:00
因为 }).forPurpose({"key":"value" 也是匹配的。
你用*,匹配尽可能多次。 *?是匹配尽可能少。 |