AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
以上的三个量词符,默认情况下都是最大可能匹配,即匹配直到下一个字符不满足匹配规则为止。这被称为贪婪模式。 ~~~ var s = 'aaa'; s.match(/a+/) // ["aaa"] ~~~ 上面代码中,模式是`/a+/`,表示匹配1个`a`或多个`a`,那么到底会匹配几个`a`呢?因为默认是贪婪模式,会一直匹配到字符`a`不出现为止,所以匹配结果是3个`a`。 如果想将贪婪模式改为非贪婪模式,可以在量词符后面加一个问号。 ~~~ var s = 'aaa'; s.match(/a+?/) // ["a"] ~~~ 上面代码中,模式结尾添加了一个问号`/a+?/`,这时就改为非贪婪模式,一旦条件满足,就不再往下匹配。 除了非贪婪模式的加号,还有非贪婪模式的星号(`*`)和非贪婪模式的问号(`?`)。 * `+?`:表示某个模式出现1次或多次,匹配时采用非贪婪模式。 * `*?`:表示某个模式出现0次或多次,匹配时采用非贪婪模式。 * `??`:表格某个模式出现0次或1次,匹配时采用非贪婪模式。 ~~~ 'abb'.match(/ab*b/) // ["abb"] 'abb'.match(/ab*?b/) // ["ab"] 'abb'.match(/ab?b/) // ["abb"] 'abb'.match(/ab??b/) // ["ab"] ~~~