V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · 2020-12-25 22:07:57 +08:00 · 734 次点击
    这是一个创建于 1428 天前的主题,其中的信息可能已经有所发展或是发生改变。
    find({}).forPurpose({"key":"value"})
    

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

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

    懂了 第一次听说这个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   951 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:34 · PVG 06:34 · LAX 14:34 · JFK 17:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.