这个正则表达式`str.gsub(/\#{((*?)}/)`做了什么?

这个问题在这里已经有了答案:

  • 贪婪与不愿意与拥有量词7答案

  • .*是一个贪婪的匹配,而.*? 是一个非贪婪的比赛。 看到这个链接的快速教程。 贪婪的比赛会尽可能地匹配,而非贪婪的比赛会尽可能少地匹配。

    在这个例子中,贪婪的变体抓住了第一个{和最后一个} (最后一个右括号)之间的所有内容:

    'start #{this is a match}{and so is this} end'.match(/#{(.*)}/)[1]
    # => "this is a match}{and so is this"
    

    而非贪婪变体只需要进行匹配即可,所以它只能在第一个{和第一个连续}之间读取。

    'start #{this is a match}{and so is this} end'.match(/#{(.*?)}/)[1]
    # => "this is a match"
    
    链接地址: http://www.djcxy.com/p/76897.html

    上一篇: What does this regex `str.gsub(/\#{(.*?)}/)` do?

    下一篇: Example for java regex X?? ,X?+ and X?