关于正则表达式符号的优先级问题?

2020-12-25 22:07:57 +08:00
 zxCoder
find({}).forPurpose({"key":"value"})

这个字符串用{.*}匹配,不能匹配到第一组{}吗?

684 次点击
所在节点    问与答
5 条回复
zxCoder
2020-12-25 22:24:24 +08:00
改成{.*?}就好了 这是为什么呢?
?是 0 次或 1 次 *是 0 次或多次
lululau
2020-12-25 22:28:49 +08:00
量词后面的 ? 不表示 0 或者 1 次匹配,搜下“正则非贪婪匹配”
xupefei
2020-12-25 22:30:16 +08:00
加了问号是非贪婪,能匹配多短就匹配多短。
msg7086
2020-12-25 22:31:13 +08:00
因为 }).forPurpose({"key":"value" 也是匹配的。
你用*,匹配尽可能多次。
*?是匹配尽可能少。
zxCoder
2020-12-25 22:35:05 +08:00
@lululau
@xupefei
@msg7086

懂了 第一次听说这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX