亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于js正則表達式的問題。。

關于js正則表達式的問題。。

紫衣仙女 2019-02-05 19:51:40
var str = 'For more information, see Chapter 3.4.5.1';var re = /see (chapter \d+(\.\d)*)/i;var found = str.match(re);console.log(found);為什么(\.\d)最后匹配的是.1呢,不應該是.4.5.1嗎?不然說不通啊。請大神指正。。
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

這個問題與正則表達式的貪婪模式有關。(\.\d)*這樣的正則寫法,默認就會采用貪婪模式,它的機制是,只要捕獲到滿足匹配的字符,就會接著繼續往后捕獲,直到不滿足匹配為止,所以在匹配字符.4.5.1時,第一次會匹配到.4,第二次.5,第三次.1,以最后一次匹配到的返回。

不知道題主是不是看了MDN上的這個地方問到的,在這個例子里的輸出解釋里有這么一句點破了這個問題,只是它沒有進一步解釋貪婪模式。

// '.1' 是被'(\.\d)'捕獲的最后一個值。


查看完整回答
反對 回復 2019-02-05
  • 1 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號